Russian Qt Forum

Qt => Qt Script, QtWebKit => Тема начата: gigabyte от Март 19, 2010, 00:28



Название: Быстродействие QtScript
Отправлено: gigabyte от Март 19, 2010, 00:28
Вопрос в следующем:
Есть 2 варанта доступа к таблице в Firebird:
1. Plugin с использованием TableView, QSqlQuery и QSqlQueyModel - от нажатия меню до появления данных.
2. Скрипт написанный с использованием объектов созданных QtScriptGenerator:
ViewGoods.js:
Код:
importExtension('dbworks');

 var viewgoods = global.loadUI("modules/viewgoods.ui","ViewGoods",true);
 try {
viewgoods.show();
var tableModel = new QSqlQueryModel(viewgoods)
var query= dbworks.execSql("select * from viewgoods rows 10",true)
tableModel.setQuery(query);
viewgoods.tableView.setModel(tableModel);            
 } catch(e) { print(e) }

dbworks.js:
Код:
dbworks.execSql = function(query,ldb) {
var db = QSqlDatabase.database('qt_sql_default_connection');
var q = db.exec(query);
if(ldb) {
  print(q);
  return q;
} else
  return q;
}
1-й вариант запускаэтся около 4-х секунд (от нажатия кнопки меню)
2-й вариант - 8-10секунд
в 1-м варианте - при перемещении по таблице  само перебежение меньше секунды (момент от нажатия кнопки в низ и до перемещения выделения)
2-й вариант 1-2 секунды!!!!!!!!

П.С. Все необходимые расширения грузятся через importExtension ДО появления главной формы и уже находятся в памяти до вызова пунктов меню.
П.П.С. После многократного нажатия на пункт меню (для проверки кеширования данных) результат для плагина - 2-3сек., для скрипта  - без изменений.

Ну и собсно сам вопрос. Как это (скрипт) ускорить? до приемлемых временных интервалов?