Бред

Feb. 2nd, 2010 09:47 pm
metaclass: (Default)
[personal profile] metaclass
Начал что-то Thunderbird тормозить, ВНЕЗАПНО. И при запуске и при открытии емылов, особенно если с аттачами - то вообще виснет намертво. И место на диске, где он живет, закончилось ни с того не сего.
Начал разбираться. Ну 10000 комментов чуть более чем за полгода из ЖЖ это хрен с ним, 100-150 мег, не страшно. Ну психи-клиенты присылающие в аттачах неупакованные логи - еще мег 100. А потом смотрю - лежит файло mimeTypes.rdf, xml размером в 200 мег(!). И в нем один тэг занимает 99% всего файла, а содержимое его - строка составленая из несчетного количества повторяющихся строк-путей к папке thunderbird.
Короче, как я понял, сначала у него заклинило в голове при заполнении этого файла и он туда запилил 200 мег конкатенированных строк, а потом каждый раз при попытке анализировать этот файл читал его _посимвольно_ и парсил.

Ключевой аспект - забили на кэширование чтения файла. Не знаю, что за дырявые абстракции в алгоритмах кэша винды, но если поверх них добавить свой кэш, например читать из файла кусками по мегабайту, а потом уже в памяти анализировать - скорость отличается реально на порядки, 5 часов vs 15 минут, например, для файла с хитрожопыми бинарными объектами.

Date: 2010-02-03 12:51 am (UTC)
From: [identity profile] smalgin.livejournal.com
Да и на запись виндовые буфера тоже не очень...

Date: 2010-02-03 04:38 am (UTC)
wizzard: (Default)
From: [personal profile] wizzard
memory-mapped files и asio спасли бы ребе :)

а вообще при расследовании подобных казусов стоит почитать кого-то вроде руссиновича и выяснить, входит ли вообще считывание по байту в список сценариев, на которые рассчитывали разработчики ядра когда-то...

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

Date: 2010-02-03 05:57 am (UTC)
From: [identity profile] nivanych.livejournal.com
> memory-mapped files

Вот именно. А как без него кешу себя проявить?

Date: 2010-02-03 07:55 am (UTC)
From: [identity profile] aamonster.livejournal.com
Сдается мне, все же не посимвольно. Посимвольно - это уже не ощущалось бы как тормоза.

Date: 2010-02-03 07:58 am (UTC)
From: [identity profile] metaclass.livejournal.com
Так я ж вижу что он делает, в менеджере задач.
100% ядра процессора жрет и при этом читает с диска с очень маленькой скоростью и некратными степени двойки порциями.

Date: 2010-02-03 10:27 am (UTC)
From: [identity profile] aamonster.livejournal.com
Ну просто по 1 символу 100% ядра жрать придется очень долго, насколько я помню =).

Profile

metaclass: (Default)
metaclass

April 2017

S M T W T F S
      1
2345678
9101112 131415
16171819202122
23242526272829
30      

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Sep. 27th, 2025 01:54 pm
Powered by Dreamwidth Studios