Свежие комментарии

Title Comment
Не, вы вероятно не так

Не, вы вероятно не так поняли. То есть ZFS конечно есть, но он на этой машине нежатый.

А речь идет о распаковке RAW-файлов от цифровых фотокамер. Там чужой код (dcraw), под который подложен собственный I/O layer. И я сегодня приделал туда тайминг, чтобы видеть сколько времени занимает собственно распаковка, а сколько - постпроцессинг, а то профайлером это смотреть мучительно.

Так вот, lossless jpeg (который huffman внутри) распаковывается этим чужим кодом с помощью fgetc() в цикле. Который у меня превращается или в getc_unlocked() или в buf[buf++] (во втором случае buf сделан mmap-ом).
А дальше я уже все выше написал, fgetc() в виде fgetc() ничуть не хуже чем buf[buf++], а вот fread() эффективнее чем memmove(). А zero copy я не могу, у меня семантика fread().
С zero copy вполне возможно что будет и эффективнее.

А, да, если Linux и многопоточная программа, то FILE I/O весь в локах (ненужных) и скорее всего mmap выиграет (потому что реально тормозит на локах). И в винде тем более выиграет. А в 8-й FreeBSD локи в этом месте сделаны лучше.

распаковка хоффмана - это у

распаковка хоффмана - это у вас ZFS наверное, там много чего может оказаться если цепочка буферов настроена неоптимально. А при работе с SSD - у него вроде большой внутренний размер страницы, кто-то говорил что 64К, и оно может плохо ложиться в маленький буфер файла. Но первичны конечно именно ваши экспериментальные замеры.

Сферически в вакууме, мапирование в виртуальной памяти - это самый естественный и дешевый доступ, поскольку достигается zero-copy и размер окрестности выбирается автоматически исходя из наличия свободной памяти, кроме того о распараллеливании чтения думает вместо нас операционная система (с тем или иным успехом;) А при чтении файла буфера копируются с места на место, проверяются постоянно границы буфера, указатель (который tell/seek) надо постоянно двигать - масса лишней работы.

В яндексе еще больше 10 лет назад индекс читался кусочками с помощью
ptr = mmap((caddr_t)NULL, size, PROT_READ, MAP_SHARED, fd, offset)
а потом сразу munmap(), поскольку целиком файл не умещался в 32bit.
При нескольких словах в запросе и множестве параллельных запросов - оно как-то все распараллеливалось внутри FreeBSD+SCSI вполне замечательно. При явном чтении получалось хуже.

Не знаю как сейчас с mmap64.

Юзанул прогу dmg2img путем

Юзанул прогу dmg2img путем ввода как написано на сайте "dmg2img Fallout3.dmg Fallout3.iso" нажал Enter и всё, отлично все сконвертировалось и ISO образ работает идеально, используйте данную прогу для ваших потребностей...

И еще :), раз уж вы читаете

И еще :), раз уж вы читаете комментарии, значит подробности могут быть интересны.

Если код читает по байтам (для FILE это getc_unlocked), то байтовое чтение и чтение через mmap ( return buf[bufp++]) - примерно одинаково по времени (а основное время там уходит в свисток - в распаковку хаффмана, более гранулярно я уже не бенчмаркал). Т.е. fgetc/getc_unlocker действительно сильно неэффективны.

А если код читает кусками (по строкам RAW т.е. несколько килобайт) - то те самые 200-300 миллисекунд разницы на 25 мегабайтах.

Ну и конечно мой код, который

Ну и конечно мой код, который с preallocated-буфером работает, может быть не самым оптимальным (зато компактный).

Да, это SSD. На обычном (хм.

Да, это SSD. На обычном (хм. обычном массиве, у меня одиночных HDD нету) тоже померяю.

UPDATE: а диск не должен никак влиять. Файл маленький, кэш большой, все тайминги - несколько запусков, но первый запуск (с поднятием в кэш) не считается.

Проблема, скорее всего, в

Проблема, скорее всего, в том, что нужен процессор с аппаратной поддержкой виртуализации. А ваш - кажется не такой.

Интересно. Значит у меня

Интересно. Значит у меня устаревшие воспоминания.
Видимо ему advise не хватает основательно. А вы проверяли на SSD или на обычном диске?

Помогите плиииз!!! Скачал Мак

Помогите плиииз!!!
Скачал Мак для VMWare долго подключал несмотря на то, что довольно-таки долго уже мучаю эту виртуальную машину...
так вот, с начала пробовал установить Kalyway с СД как обычную операционку. Установка шла, шла и прекращалась возле конца пока у меня не лопнуло терпение и диск был ликвидирован. Пробовал снова записать ИЗО образ, но записывается лишь 116 килобайт и всё :)

Повторюсь - скачал Snow leopard предустановленный для VMWare, подключил! добился какй-то работы, но перезагружается. Появляется яблочко и перезагружается. Вот что хочешь то и делай. В ходе экспериментов удалось избежать перезагрузок, но теперь ругается на процессор. Сбой какой-то, требует по моему 660мегагерц, ну у меня 800, должно хватать.
Cd & HDD SATA
Motherboard ASUS P5B
CPU Intel Pentium D E2160

подскажите пожалста, в чём проблема???

Дошли руки это место

Дошли руки это место побенчмаркать.

FreeBSD, single thread, файл на 20+ мегабайт.

mmap() гораздо медленнее, чем файловый доступ. Т.е. на 20-25 мегабайтном файле - лишние миллисекунд 200-300. Это если просто MAP_PRIVATE. MADV_WILLNEED и MAP_NOCORE несколько улучшают.

В этот раз я пробовать не стал, а в прошлое гниение битов эт

В этот раз я пробовать не стал, а в прошлое гниение битов это не помогло.

сдается мне, что с точки зрения ускорения загрузки (заметног

сдается мне, что с точки зрения ускорения загрузки (заметного причем) достаточно поменять юзер-профиль (старый прибить), ибо биты *в основном* гниют там.
кстати - испытать это можно безопасно - просто создаешь нового юзера и грузишься в ём.

В общем случае это +25% к

В общем случае это +25% к потребной памяти (для 16-битных нежатых raw). Если пользователь такое может позволить себе - то для этого у него имеется отдельный интерфейс на эту тему "читать RAW из буфера в памяти".

Я вот тоже темный и FILE*

Я вот тоже темный и FILE* милее всяких цплюсплюсовых наворотов.
По-любому быстрее всего - тянуть файл в память и потом быстро-быстро препарировать.
Что касается больших многокадровых RAW, наверняка ведь кадры друг от друга независимы - закачиваем каждый по отдельности в память и препарируем.

Для домашнего виндовс можно

Для домашнего виндовс можно не пожалеть времени промониторить все инсталляции Total Uninstall'ом (с момента установки системы конечно, иначе смысла мало). Правда полной деинсталляцией через него я пользовался всего несколько раз, дело не очень надежное (в отличие от sandbox'a), он нужен больше для точечной чистки (типа найти плагин к firefox, который остался где-то в дебрях системы после деинсталляции KAV)

А другие sandbox'ы (типа Xenocode, Sandboxie) тоже тормозят?

Ну одно дело для себя любимого, а другое - как корпоративное

Ну одно дело для себя любимого, а другое - как корпоративное решение.

Под VM не работает много всего для меня интересного: CUDA/Op

Под VM не работает много всего для меня интересного: CUDA/OpenCL (не виртуализируется пока), VTune (хочет настоящих процессорных каунтеров)
И я сильно сомневаюсь, что фотошопная GPU-акселерация будет работать (и с управлением цветом в VM есть особенности). Аналогично и с видео-playback.

Руки чешутся, конечно "офис" запихать под VM. В смысле всякую почту, собственно MS-офис и тому подобное. Но опять, есть сомнения, что та же синхронизация аутлука с мобильными устройствами будет *удобной*
Через полгода, когда в очередной раз пора будет переставлять.

Мы тупо используем виртуальные машины на блейде и тонкие кли

Мы тупо используем виртуальные машины на блейде и тонкие клиенты. xfreerdp нонче очень хороша, и звуки и диски отдаёт. usb ключи раздаются через какую-то железную приблуду на все vm (тоже прелесть как хороша).

Именно это и делает ThinApp. Но жить невозможно (не говоря о

Именно это и делает ThinApp. Но жить невозможно (не говоря о том, что процедура "включить этот sandbox как дефолтный browser" - исключительно ручная и геморойная)

Хм. Ну я пароль не ввожу. У

Хм. Ну я пароль не ввожу. У меня автологин настроен. Я включаю компьютер и все. Грузится быстро, система установлена в марте. Но я периодически дефрагментирую диск и подчищаю автозагрузку (всякое гавно пытается туда установить что-нибудь). Надпись welcome висит не более 10 секунд.
А вот с xp ситуация была как вы описали.

А толку то? Свежая система

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

Места на диске мне как раз не жалко.

Ну в 7 диск чистится

Ну в 7 диск чистится стандартно утилитой Disk CleanUp. На первой закладке чистим все, на второй точки System Restore.

После установки CS5 прогон

После установки CS5 прогон поиска duplicate files результатами не радует. А мусор после Adobe Update убирать тоже приходится, причем до фига его.

Ну он думает минут по 20, и его лучше пускать с редиректом в

Ну он думает минут по 20, и его лучше пускать с редиректом в файл

Спасибо. Поставил cruft, с интересом жду.

Спасибо. Поставил cruft, с интересом жду.

Re: Может, что-то в консерватории подправить? (с)

Угу.
ThinApp в этом смысле идеологически правилен: мусор локален, надоело - контейнер грохнул и все. А в настоящую файловую систему ходит только куда пустили.

Но понятные проблемы с IPC и тормозит, сука. И мелкие глюки местами.

Но направление правильное.

если бы "политика партии" была такая - "для каждой прикладух

если бы "политика партии" была такая - "для каждой прикладухи генерится сандбокс, в которм она живёт вплоть до момента анинсталяции" а прцедура "записать в системные ресурсы (реестр/длл-ки и всё такое)" была бы достаточно геморройной, то порядка было бы больше.

Re: Может, что-то в консерватории подправить? (с)

Похоже у инсталляторов/анинстоллеров стратегия такая - инсталлятор "мониторит" и сбрасывает в лог (типа "анинсталл.дат") всю активность по файлам и реестру.
Анинстоллер затем, базируясь на этих "трейсах", чистит систему.

но в процессе жЫзни "программа" приложение создаёт (особенно в реестре) ещё "всякий мусор". Будет ли и он почищен, зависит от... (в основном, "культуры" кодеров).

беда, одним словом.

Данные из сети принимает счетное количество программ. Экспе

Данные из сети принимает счетное количество программ.

Эксперимент с ThinApp был именно в эту сторону - все что в сеть смотрит упаковать в песочицу. Но неудобно и тормозит.

Re: Может, что-то в консерватории подправить? (с)

это да - "агрессивная" дефрагментация скорее убивает диск, чем лечит.

а для SSD вообще своя стратегия дефрагментации/оптимизации... если имеющийся дефрагментатор "не умеет SSD", то я бы его туда и не пускал :-)

Pages

Subscribe to comments_recent_new