Egor
и как это соотновится с тем, что @xvitaly пислал выше?
Примерно никак: меня интересовал вопрос "зачем они это сделали", мне более-менее отвечали на вопрос "почему так делать никогда нельзя" (кроме одного сообщения).
Ignat
ну там чёт в основном, как утверждается, какие-то краши фиксятся
Ignat
сходу понять, кто в них виноват, не представляется возможным
Egor
Не только краши, как отвечают в issue, основная беда — нельзя сделать так, чтобы сотни тысяч сообщений в диалоге можно было отобразить без тормозов и с возможностью прокрутки и изменения размера окна. Ну и какие-то вещи backport'ят из будущих версий: https://github.com/telegramdesktop/tdesktop/issues/1815#issuecomment-353521948
Ignat
+ // Patch: Optimize redraw - don't clear image if it will be fully redrawn. ПЕРФОРМАНС, опять же
Stanislav
обещали фикс в 5.0 утащить
Stanislav
https://bugreports.qt.io/browse/QTCREATORBUG-19420
Stanislav
https://bugreports.qt.io/browse/QTCREATORBUG-19420
заменил libclang из найтбилда 6.0, можно жить
Anatoly
Stanislav
хреново
Stanislav
https://github.com/qt-creator/qt-creator/commit/7a2e1e29cb38b339780938a3e582110e566b5631
Stanislav
о, наконец та
Stanislav
не помогает
но с кланговской моделью должно помочь
Stanislav
что ты имеешь ввиду?
Clang Code Model: Error: The clangbackend process has finished unexpectedly and was restarted. вот это лечится
Stanislav
просто возьми libclang.dll из 6.0 и положи в папку креатора
Anatoly
https://bugreports.qt.io/browse/QTCREATORBUG-19592
@crackedmind спасибо большое!!! Стас помог решить вопрос: - установить llvm 6.0.0 http://prereleases.llvm.org/win-snapshots/LLVM-6.0.0-r320423-win32.exe - указать в качестве статического анализатора вновь установленный - cкопировать libclang.dll из 6.0.0 в папку Qt\Tools\QtCreator\bin
🦥Alex Fails
для статического анализа http://www.dependencywalker.com/
Оно и в динамическмй умеет, с относительно "недавнего" времени
Anatoly
Оно и в динамическмй умеет, с относительно "недавнего" времени
не знал, ты имеешь ввиду он каким-то образом анализирует и LoadLibrary? под статическим анализом я имел ввиду, что нельзя отследить run-time загрузку dll через LoadLibrary, что в этом случае только в run-time можно получить список реально загруженных библиотек и привел ниже функции, как это сделать.
Vitaliy ◀️TriΔng3l▶️
http://ourmachinery.com/post/minimalist-container-library-in-c-part-1/ 😻
Alexander
а какой либой сейчас в c/c++ сейчас быстро сериализовать в json???
Alexander "SonnySlave"
а какой либой сейчас в c/c++ сейчас быстро сериализовать в json???
быстро - это по скорости работы программы?
Alexander
быстро - это по скорости работы программы?
чтобы большие нагрузки держало...
Alexander "SonnySlave"
Alexander "SonnySlave"
аха
Alexander
ага, rapidjson мейби?
я смотрю его исходники, это так модно сейчас все в *.h описывать?
Alexander
всм без *.cpp
Alexander "SonnySlave"
ну вот нравится им не трахаться с компиляциекй своей либы
Thorn
если там одни шаблоны, то по-другому никак
Alexander "SonnySlave"
я смотрю его исходники, это так модно сейчас все в *.h описывать?
Я надеюсь, это тебе поможет: https://github.com/miloyip/nativejson-benchmark
Thorn
в документации к компилятору написано: Two-phase name binding in templates, as described in [tesp.res] and [temp.dep] of the standard, is not implemented.. Что это значит с практической точки зрения?
Thorn
TI C28x
Stanislav
https://blogs.msdn.microsoft.com/vcblog/2017/09/11/two-phase-name-lookup-support-comes-to-msvc/ пункт What is “two-phase name lookup”?
Alexander "SonnySlave"
TI C28x
ой, а что это такое?
Stanislav
то, чего уних нет 😊
уже есть, скоро будет включено по умолчанию
Thorn
т. е. в MSVC до сих пор то же самое?
Stanislav
Implementing two-phase name lookup required fundamental changes in MSVC’s architecture. The biggest change was to write a new recursive descent parser to replace the YACC-based parser that we’ve used for over 35 years.
Stanislav
в превью?
эм, отдельной опцией с 15.3 включается
Thorn
ой, а что это такое?
младшее семейство сигнальных процессоров TI (ближе к микроконтроллерам)
Alexander "SonnySlave"
эм, отдельной опцией с 15.3 включается
хм, не знал. пасиб. Это просто отличная новость)
Alexander "SonnySlave"
не прошло и 40 лет 😊
Thorn
TI C28x
кстати, пример компилятора, который до сих пор С++03 и С98, и авторы даже не шевелятся по поводу свежих стандартов. спасибо хоть, что не требуют за лицензию $6000
Stanislav
@zamazan4ik если ты пропустил то вот тебе еще
Stanislav
https://blogs.msdn.microsoft.com/vcblog/2016/11/16/permissive-switch/
Thorn
в хорошем gui toolkit'е такой список уже должен быть (типа RecyclerView в андроиде)
Anatoly
в хорошем gui toolkit'е такой список уже должен быть (типа RecyclerView в андроиде)
В qt это тоже есть через реализацию отложенной загрузки в модели.
Anatoly
В qt надо не view виртуализировать, а модель.
Alexander
В qt надо не view виртуализировать, а модель.
+, но не уверен что в телеге они кастома не наплодили...
Alexander
+ возможно нет смысла в памяти сотни тысяч сообщений держать, можно выгружать и подгружать по мере необходимости...
Anatoly
+ возможно нет смысла в памяти сотни тысяч сообщений держать, можно выгружать и подгружать по мере необходимости...
Виртуально хоть миллион, а реально некий буфер из сотни сообщений, а сами сообщения в локальном кеше (бд)
Alexander
Rapidjson хорошая штука, мы уже 3 года юзаем. Единственное там варнинги есть при сборке
Anatoly
У меня где-то в локальном архиве есть вьевер фотогалереи с параллельной загрузкой фото, так там буфер определялся тремя страницами просмотра и вообще скролился без задержек и консьюмил фиксированный размер память. Эмулировал при тестировании 10000 фото
Thorn
В qt надо не view виртуализировать, а модель.
а gui widget'ы элементов списка при этом будут использоваться повторно? а не удаляться и создаваться заново
Anatoly
а gui widget'ы элементов списка при этом будут использоваться повторно? а не удаляться и создаваться заново
Видгеты создаются в момент редактирования, а за отрисовку отвечают делегаты: http://doc.qt.io/qt-5/model-view-programming.html Поэтому вид при отрисовке текущего видового окна использует ресурсы оптимально, без лишнего оверхеда
Thorn
я вспоминаю этот страшный ужас, мне надо было checkbox (не кликабельный) нарисовать в ячейке грида, нашел пример, где создают QCheckBox и говорят ей "нарисуйся по таким-то координатам вот в этот QPaintDevice"
Thorn
(а если надо было кликабельный, то еще и клики вручную фильтровать по координатам и проксировать в этот чекбокс)
Thorn
короче, восход солнца вручную
Anatoly
Но здесь не qt виноват, ты просто не до конца разобрался в вопросе.
Thorn
в андроиде почему-то ничего подобного не нужно, а виртуальные списки и гриды есть, и число одновременно существующих View'ов ограничивается, и они даже не пересоздаются
Thorn
надеюсь, разобраться не будет означать написать все это почти с нуля
Anton
Не даром первые авторы qt звались тролль тех )