Высоконагруженные приложения или малопроизводительные ПС

вопросы по созданию программ с использованием возможностей библиотеки PHPQt5

Moderator: ArtMares

ArtMares
User avatar
 
Posts: 72
Location: Москва
Во время разработки мы не задумываемся на тему того что от характеристик компьютера зависит то как будет работать наше приложение.

Обычно большая часть разработчиков использует хорошие PC с большим количеством оперативной памяти и мощным процессором. Но когда приходит момент и мы выкатываем наше приложение в продакшен могут возникнуть проблемы которые ну ни как не должны были возникать.
Мы проверяем код, запускаем приложение у себя но у нас не получается повторить ошибку.

Все из-за того что компьютер пользователя можно назвать "печатной машинкой", которая еще и нагружена по полной, кучей открытых Excel файлов и т.п.

И так поделюсь с вами тем как я в данный момент веду разработку и как мне приходится обходить те или иные ошибки в работе приложения.

Разработкой я занимаюсь на MacBook Pro из-за того что я к нему привык и он долго работает от батареи. В связи с тем что в данный момент PHPQt5 не может работать под Mac OS, я использую виртуальную машину с минимальными характеристиками:

1 процессор с тактовой частотой 2.5 GHz
1 Gb оперативной памяти

С установленной Windows 7 Ultimate x64

И так самый главный совет

До тех пор пока окно программы имеет isVisible() = false или просто напросто оно не отображается можно спокойно работать со свойствами(как записывать так и получать из них данные)

Как только окно программы имеет isVisible() = true, то советую использовать только методы для записи и считывания данных из свойств

Лично я сам неоднократно сталкивался с тем что в момент работы программы получая значения свойства text у объекта QLineEdit мне возвращалось пустое значение


Список свойств которые мне пришлось заменить на методы:

Постараюсь привести как можно больше или буду пополнять по мере нахождения новых

QLineEdit
Code:
$text = QLineEdit->text;
/** заменено на */
$text = QLineEdit->text();


QLineEdit->text = 'text';
/** заменено на */
QLineEdit->setText('text');
QTextEdit
Code:
$text = QTextEdit->plainText;
/** заменено на */
$text = QTextEdit->toPlainText();

QTextEdit->plainText = 'text';
/** заменено на */
QTextEdit->setPlainText('text');

$html = QTextEdit->html;
/** заменено на */
$html = QtextEdit->toHtml();

QTextEdit->html = $html;
/** заменено на */
QTextEdit->setHtml($html);
QEvent
Code:
$type = QEvent->type;
/** заменено на */
$type = QEvent->type();
На данный момент это все, так как в определенный момент я перестал использовать свойства в момент работы приложения.

В дальнейшем постараюсь по эксперементировать на PQStudio и дополнить данный список
PQStudio Development Progress: 75%
Version: 0.2

rinart73
User avatar
 
Posts: 36
Skype: art7emw
Извиняюсь, а чем не вариант дописать это
в уже созданную мной тему?
Почетный страдалец фигней
Пилю load_ui_file :good2:

ArtMares
User avatar
 
Posts: 72
Location: Москва
[bquote=rinart73|/viewtopic.php?f=7&t=24&p=152#p152|26 мар 2016, 12:45]Извиняюсь, а чем не вариант дописать это а еще в уже созданную мной тему?[/bquote]
Потому как это немного две разные темы, в той теме ты затронул вопрос быстродействия и начал приводить замеры по времени выполнения.
В этой теме я решил делится своим опытом и проблемами с которыми я сталкиваюсь по мере разработки PQStudio.
В принципе я вообще могу перенести данной пост в тему PQStudio, если Вас так смущает.
PQStudio Development Progress: 75%
Version: 0.2

rinart73
User avatar
 
Posts: 36
Skype: art7emw
Пожалуй верно, извиняюсь :)
Просто название темы смутило
Почетный страдалец фигней
Пилю load_ui_file :good2:

WxMaper
User avatar
Администратор
 
Posts: 92
Вот уж не знаю, видя исходники проекта я могу с уверенностью сказать, что свойства работают намного стабильнее и уж точно быстрее методов, так как там вообще нет никакой абракадабры в проверкой типов, преобразованиями и прочего.

Если свойства работают нестабильно, то скорее всего нестабильно работали бы и методы, потому что результат выполнения "get_property" и результат выполнения "call_method" возвращается в PHP через одну и ту-же функцию, только путь у них разный: в первом случае это происходит буквально в две строки, во втором - через лапшу вызовов.

Нужен детальный анализ проблемного кода =)


Вернуться в Вопрошайка

Who is online
Users browsing this forum: No registered users and 3 guests