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

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

Модератор: ArtMares

ArtMares
Аватара пользователя
 
Сообщения: 72
Откуда: Москва
Благодарил (а): 4 раза
Поблагодарили: 5 раз
Во время разработки мы не задумываемся на тему того что от характеристик компьютера зависит то как будет работать наше приложение.

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

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

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

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

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

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

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

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

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

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


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

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

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


QLineEdit->text = 'text';
/** заменено на */
QLineEdit->setText('text');


QTextEdit
phpqt Код:
$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
phpqt Код:
$type = QEvent->type;
/** заменено на */
$type = QEvent->type();


На данный момент это все, так как в определенный момент я перестал использовать свойства в момент работы приложения.

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

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

ArtMares
Аватара пользователя
 
Сообщения: 72
Откуда: Москва
Благодарил (а): 4 раза
Поблагодарили: 5 раз
rinart73 писал:Извиняюсь, а чем не вариант дописать это а еще в уже созданную мной тему?

Потому как это немного две разные темы, в той теме ты затронул вопрос быстродействия и начал приводить замеры по времени выполнения.
В этой теме я решил делится своим опытом и проблемами с которыми я сталкиваюсь по мере разработки PQStudio.
В принципе я вообще могу перенести данной пост в тему PQStudio, если Вас так смущает.
PQStudio Development Progress: 75%
Version: 0.2

rinart73
Аватара пользователя
 
Сообщения: 36
Skype: art7emw
Поблагодарили: 2 раза
Пожалуй верно, извиняюсь :)
Просто название темы смутило
Почетный страдалец фигней
Пилю load_ui_file :good2:

WxMaper
Аватара пользователя
Администратор
 
Сообщения: 92
Благодарил (а): 8 раз
Поблагодарили: 4 раза
Вот уж не знаю, видя исходники проекта я могу с уверенностью сказать, что свойства работают намного стабильнее и уж точно быстрее методов, так как там вообще нет никакой абракадабры в проверкой типов, преобразованиями и прочего.

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

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


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

Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость
cron