Pull to refresh

Comments 11

Раз пошла такая пьянка, то просто функцию вызывать с возвращаемым значением почему уж не проверили? Q_INVOKABLE.
А чем оно от слота отличается кроме как номером в сигнатуре?
Хм, проверим и добавим в статью результаты.
UFO landed and left these words here
Тест проводился для самой, так сказать, последней на данный момент версии — Qt 5.0.1 for Windows 32-bit (MinGW 4.7, 823 MB)
Почему QtQuick 1.1? В Qt Creator 2.6.2 есть проблемы с дизайнером. По крайней мере мне дизайнер любезно сообщает, что QtQuick 2.0 он пока еще не знает. Не будите же вы в своих проектах элементы вручную в коде позиционировать, нет, можно, конечно, но как по мне, лучше уж немного посидеть на QtQuick 1.1.
UFO landed and left these words here
Ну дак это просто замечательно, что Вы умеете все собирать сами. Как именно это относится к статье? Вам не понравилось, что использовался QtQuick 1.1? Создал проект 2.0. Накидал пару перечисленных способов, результаты относительно друг друга не изменились, но затраченное время пропорционально возросло. Например, для слота, возвращающего значение, ушло примерно 18 мс.
> В Qt 5 сигналы\слоты быстрее должны работать
Они, может и должны, но получается совсем на оборот. И на погрешность тут уже не сослаться. Ибо разница достаточно заметна и стабильна.
Что-то как-то это все странно очень выглядит.

Во-первых, 10 мс для одного вызова — это оочень много. Qt может переваривать до нескольких тысяч meta-вызовоов в секунду (без QML, правда).

Во-вторых, при использовании сигналов/слотов необходимо совершить 2 meta-вызова, а при прямом вызове функции — один. То есть, по идее, в первых двух случаях работы в 2 раза больше. А время отличается на несколько процентов всего лишь.

Все-это наводит на мысль, что тормозит «что-то еще», а не механизм meta-вызовов.
Приведенные миллисекунды — это сумма для 20 вызовов, как было сказано в самой статье. Время, требуемое для одного вызова измеряется в микросекундах (самая последняя цифра на картинках с результатами). Именно сумма для 20 вызовов в подводе итогов используется для большей наглядности.
Извиняюсь, не досмотрел. Тогда это больше похоже на правду.

Вопрос же, почему вызов одной функции не в 2 раза быстрее, чем вызов двух, тем не менее, остается открытым.
Sign up to leave a comment.

Articles