Author Topic: NewStory  (Read 13264 times)

0 Members and 2 Guests are viewing this topic.

Offline -SM-

Re: NewStory
« Reply #60 on: 29 11 2023, 08:30:27 »
А это так задумано, что в групчатах табсы показывают контакты, кто что писал, а NS - только либо я, либо имя групчата?
 

Offline dartraiden

Re: NewStory
« Reply #61 on: 29 11 2023, 10:32:55 »
Нет, это баг.
« Last Edit: 29 11 2023, 10:34:33 by dartraiden »
 

Offline dartraiden

Re: NewStory
« Reply #62 on: 29 11 2023, 10:45:06 »
У меня почему-то вместо имени отправителей название чата и в чате в ВК
Это точно чат, а не какой-нибудь паблик или что там ещё бывает в этом ВК?
 

Offline Alekos

  • Newbie
  • *
  • Posts: 16
Re: NewStory
« Reply #63 on: 29 11 2023, 13:12:38 »
dartraiden, да, это точно чат,
Разве в миранде можно добавить сообщества вк как чат?

Ещё одно предложение для NewStory: при использовании мультиконтактов сбоку от сообщения выводить, через какой протокол оно получено.
« Last Edit: 29 11 2023, 13:16:16 by Alekos »
 

Offline dartraiden

Re: NewStory
« Reply #64 on: 29 11 2023, 14:42:44 »
Разве в миранде можно добавить сообщества вк как чат?
Я поэтому и спрашиваю, поскольку этим подментованным ресурсом не пользуюсь и не знаю, что там можно добавить. У меня есть какой-то тестовый чат на 3 персоны, в нём порядок.
 

Offline dartraiden

Re: NewStory
« Reply #65 on: 30 11 2023, 19:22:32 »
Должно исправиться, проверяйте.
 

Offline Boris_M

Re: NewStory
« Reply #66 on: 13 12 2023, 06:43:13 »
Miranda NG Version: 0.96.5 alpha build #26564 (fbf7ea850b) x64
Build time: 12 Dec 2023 20:13:04
¤ NewStory.dll v.0.2.0.1 [12 Dec 2023 20:15:40] - NewStory
Краш при открытии журнала истории
 

Offline dartraiden

Re: NewStory
« Reply #67 on: 13 12 2023, 17:28:26 »
Исправлено. Дальше вы, вероятно, столкнётесь с https://github.com/miranda-ng/miranda-ng/issues/3781
 

Offline -SM-

Re: NewStory
« Reply #68 on: 13 12 2023, 17:38:18 »
Исправлено.
Это не исправлено, а закостылено. Недавно NS открывала историю с любым кол-вом сообщений, и падала только после того, как 7-8 тысяч сообщений будет отображено на экране в процессе разных действий. Объекты GDI утекали "медленно", при просмотре и скроллинге. А теперь она сразу набирает 10000 объектов при открытии и ее клинит.  В гитхабе от этого пока отбрыкиваются. Но оно же четко видно, что оно сломалось еще в одном месте где-то по сравнению с "хоть как-то" работающими предыдущими сборками.
 

Offline dartraiden

Re: NewStory
« Reply #69 on: 13 12 2023, 17:43:30 »
Заявлено падение при открытии, оно исправлено. Проблемы при прокрутке 100500 сообщений это отдельный разговор.
 

Offline -SM-

Re: NewStory
« Reply #70 on: 13 12 2023, 17:52:18 »
Заявлено падение при открытии, оно исправлено.
Ну да. Заявлен апендицит, а вырезали голосовые связки, чтобы не орал...
Еще раз - в совсем недавних версиях кол-во GDI объектов при открытии истории, независимо от ее размера, было порядка 900 (можно убедиться в последней стабильной). И падало оно только ПОСЛЕ кучи скроллингов. А в текущей версии она вдруг стала сразу при открытии окна упираться в 10000 объектов. Разницу чувствуете? Оно было бы исправлено, если бы вернулось к тому состоянию, когда при открытии окна на длинной истории кол-во GDI объектов было бы разумное, сравнимое со стабильной версией.
 

Offline Boris_M

Re: NewStory
« Reply #71 on: 13 12 2023, 18:06:24 »
Заявлено падение при открытии, оно исправлено.
Miranda NG Version: 0.96.5 alpha build #26570 (054bb19492) x64
Build time: 13 Dec 2023 20:31:38¤ NewStory.dll v.0.2.0.1 [13 Dec 2023 20:33:48] - NewStory

Виснет и потом падает....
 

Offline -SM-

Re: NewStory
« Reply #72 on: 13 12 2023, 18:21:29 »
У меня есть предположение, что может исправить ситуацию.
Сейчас в libTextControl.mir имеется один глобальный кеш иконок, в котором хранятся метафайлы на каждую иконку. Однако, при "доставании" этой иконки из этого кеша делается CopyEnhMetaFile, что каждый раз создает копию этого метафайла в памяти для каждого экземпляра любой иконки в тексте. Вот она и утечка.
Вероятно:
- вариант 1 - надо делать еще кеш второго уровня, привязанного к HWND окна, чтобы для каждого HWND создавалась только одна копия метафайла из глобального кеша для каждой HICON. При закрытии окна просто убивать экземпляр этого второго кеша.
- вариант 2 - в глобальном кеше держать как ключ пары {HICON, HWND} - и возвращать оттуда "оригинал метафайла" для каждого конкретного HWND, не делая копий вообще. При закрытии окна вычищать из глобального кеша все записи, связанные с закрываемым HWND

Завтра попробую проверить это предположение, пропатчив эту либу соответствующим образом, чтобы хотя бы на одном окне работало.

---------------

Этого мало, но стало еще более понятно, как это починить, кешировать вообще не это надо.

« Last Edit: 14 12 2023, 05:22:53 by -SM- »
 

Offline -SM-

Re: NewStory
« Reply #73 on: 14 12 2023, 09:45:05 »
В общем, я эту проблему частично решил, причем на корню, GDI объекты не растут, иконки показываются. Правда, пока для одного открытого окна с историей. Ричедит там естессно не виноват, проблема заключается в том, что не то и не так кешируется.

Теперь дописываю решение для любого количества окон с историей. Как доделаю до конца, отпишусь.
 
The following users thanked this post: Boris_M

Offline -SM-

Re: NewStory
« Reply #74 on: 14 12 2023, 13:12:43 »
ловите. Пофиксил в корне, с этим патчем кеш работает по-другому, и не плодит объекты. Вроде работает. 200К постов открыло с 900 гди объектами и иконками. Сорри, я не гуру плюсов, уж что и как смог. Я все таки на обычном С работаю. Если понравится, втаскивайте в исходники.

Но, все таки, хочется узнать, что так резко поменялось, что сразу GDI объекты зашкаливать стали, а раньше только после долгого просмотра это начиналось. Соответственно раньше история "махом" открывалась, хоть там 200000 постов, а теперь тормозит как падла. Такая история стала минуты открываться, это же жесть. И это не из-за моих правок. Верните алгоритм открытся истории на "старый", как в "стабильной" версии !!!!
 
« Last Edit: 14 12 2023, 14:07:08 by -SM- »
 
The following users thanked this post: Elzor