169 похожих чатов

Мдя, прикол, боевая сборка запускается (именно под отладчиком) после F9

примерно полторы минуты (97 секунд если быть точным). Начал копать - проблема детектится сразу - зависание на чтении отладочной. Проект большой, отладочной много. Ок, начинаю смотреть своим ридером - с ним проблем нет, он читает в районе двух секунд всю отладочную. Вот этим https://github.com/AlexanderBagel/ProcessMemoryMap/blob/master/RawScanner/RawScanner.CoffDwarf.pas

Ок, проверяю а почему у них так? Выясняется, я читаю как, читаю запись, потом сопостовляю её через case по типу с нужным полем. У них же - берется поле - ИЩЕТСЯ!!! где лежит нужная запись причем поиск идет по тупому от нуля до каунта!!! Пииисец. Экспоненциальная зависимость. Странно что не 200 секунд читает

38 ответов

9 просмотров

а я тебе говорил не ходить тудой

Ну...есть мнение, что так сделано потому что отладочная может и отдельно лежать. С другой стороны, может быть прост как осилили

Стикер

Это которые в lnfodwrf.pas ?

Александр В
Ну...есть мнение, что так сделано потому что отлад...

Это пофиг где отладочная сидит - тут сам алгоритм не верный

А я это именно щас и собираюсь делать, тут без вариантов

notme
Это которые в lnfodwrf.pas ?

нет, там ваще тихий ужас, я про "\lazarus\components\fpdebug\fpdbgdwarfdataclasses.pas"

Там вообще много где линейные поиски

Это нормально, я когда прототип клепаю, то не заморачиваюсь преждевременной оптимизацией. Могу и поиск в цикле делать, и копировать значения лишний раз, если это упрощает код. И вроде как на малых данных все быстро и удобно. А потом приходит образец данных на сотню гигов, и там уже нужно хоть немного, но оптимизировать

Sergey Bodrov
Это нормально, я когда прототип клепаю, то не замо...

Тут нужно не оптимизировать - тут нужно всё переписывать

zamtmn
Там вообще много где линейные поиски

Щас только вопрос, как это исправить малой кровью? Моя читалка пока что не заточена на лазарь, хотя самое оптимальное именно её испоьзовать ибо там все весьма оптимизировано

Александр (Rouse_) Багель
Тут нужно не оптимизировать - тут нужно всё перепи...

Да, так тоже бывает. Можно еще попытаться "переходник" сообразить, чтобы в чужой монастырь со своим самоваром не лезть. Но это удручает.

Sergey Bodrov
Да, так тоже бывает. Можно еще попытаться "переход...

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

Alexey Gavrilov
Сначала обложил всякими хловами...

Тем чем я это обложил когда нашел - сюда постить нельзя :)

Александр (Rouse_) Багель
нет, там ваще тихий ужас, я про "\lazarus\componen...

А где там ужас? Выглядит старомодно, классически, но вроде не похоже на говнокод.

Sergey Bodrov
А где там ужас? Выглядит старомодно, классически, ...

ничо что там кэша нет и при чтении дварфа производится миллионы операций чтения с харда по одному два четыре байта? Я уж не говорю что там сам дварф на миниальном уровне ваще читается (это я про lnfodwrf.pp если чо)

Александр (Rouse_) Багель
ничо что там кэша нет и при чтении дварфа производ...

Щас тебе лазаруслфилы напихают про то, что так и должно быть и испокон веков наши деды так делали и если не нравится, напиши как тебе надо

оно и в винде так-же читает :) А тебе задайся вопросом, почему моя это парсит за 2 секунды, а их только на чтение тратит по полминуты? :)

Serjone
Щас тебе лазаруслфилы напихают про то, что так и д...

Чтобы мне что-то напихать нужно обладать как минимум моей квалификацией. Я сам кому хочешь написаю полную кукушку :)))

Александр (Rouse_) Багель
оно и в винде так-же читает :) А тебе задайся вопр...

на всякую мутоту внутри RTL, но не "с харда" я в свое время тупо заменяя "школьный" Read на крупноблочное чтение из TStream и занудный ручной парсинг - тоже поднимал скорость ого-го. Но это чисто RTL, винда с железом делали что могли в обоих случаях

Sergey Bodrov
Это достаточно TDbgFileLoader поправить

там много чего придутся переделывать. Ладно это оффтоп, не отвлекайте - профайлер надо пилить нормальный сначала

Александр (Rouse_) Багель
там много чего придутся переделывать. Ладно это оф...

В TDbgFileLoader.OpenStream заменить TFileStream на TMemoryStream + LodaFromFile займет совсем мало времени =)

Sergey Bodrov
В TDbgFileLoader.OpenStream заменить TFileStream н...

А, ты про fpdebug - ну да, есесно, я думал ты про lnfodwrf

Александр (Rouse_) Багель
А, ты про fpdebug - ну да, есесно, я думал ты про ...

А, это да, говнокод. Но там в TEReader вроде есть буфер. Маленький совсем, но есть.

Хм, странно, у меня 7500 уникальных адресов преобразуются в строку "файл,номер линии, функция" за меньше чем секунду отладочная ~ 300Мб а, не, обманул, дольше - 5,7 сек

notme
Хм, странно, у меня 7500 уникальных адресов преобр...

а у меня все адреса (более миллиона ста тысяч) за 2 секунды :)))

Александр (Rouse_) Багель
ничо что там кэша нет и при чтении дварфа производ...

Одно дело в отладчике читать, другое в вылетевшей программе. В отладчике конечно все надо кэшировать оптимизировать. В программе при развороте стека можно и подождать, но не усугубить поломку дальше

zamtmn
Одно дело в отладчике читать, другое в вылетевшей ...

Разные механизмы используются, у них там ваще толи три толи четыре реализации читалок дварфа

Похожие вопросы

Обсуждают сегодня

Здравствуйте, вопрос по структурам данных. Были у вас случаи, когда пришлось писать деревья или двунаправленные списки?
/ /
50
привет всем. Народ, кто-нибудь работал с мультипоточностью? Где посмотреть/ что почитать посоветуете? В идеале чтоб материал был максимально сжатый, времени читать например в...
Serg Vish
18
Всем привет! Скажите, никто не пытался уменьшить размер процесса ssl, которые ассоциируется с открытым соединением (не помню точное название этого процесса, но там была какая-...
Алексей
20
This is a big issue. Just by being a citizen of a country, you are denied to contribute to Open Source software: https://youtu.be/L5Ec5jrpLVk?si=1iIuHnMPbCB4anV-
Sharuzzaman Ahmat Raslan
72
а проверьте, собирается ли у кого сейчас транк лазаря через делюкс? у меня вот: fpcupdeluxe: info: Lazarus Native Installer (BuildModuleCustom: UserIDE): LazBuild: building Us...
Iluha Companets
20
добрый день. возможно ли изменить цвет окон лазаруса? Как?
Budemposmotret
35
Мне тут приспичило встроить в программу форматировние текста SQL, расставить переносы строк и отступы так, чтобы лучше читалось. Я что-то свое изобразил, оно после ключевых сл...
Sergey Bodrov
11
А какие существуют способы обработки ошибок выделения памяти в ядре? Т.е., допустим, есть функция, которая возвращает адрес свободной страницы в физической памяти и диапазон в...
disba1ancer
51
Господа, а кто-нибудь сталкивался с размещением на TTabControl/TTabSheet множества контролов (> 100) с последующими External: Access violation? Вот буквально на ровном месте. ...
Dmitry
29
Does anyone have some zeroday's left?
Wito!d ♥️🩷
44
Карта сайта