Записки программиста, обо всем и ни о чем. Но, наверное, больше профессионального.

2012-04-03

Память

Все бывает в первый раз.
Сегодня, впервые с момента моего знакомства в WinRAR, он меня удивил. Я эту замечательную программу знаю только с хорошей стороны, пользуюсь практически ежедневно, и вот, на тебе.
Эта программа отказалась создавать архив, мотивируя тем, что, цитирую «не хватает памяти». Впервые с момента нашего знакомства WinRAR стал очевидно дурковать — у компа 10 гигов оперативы и более 50 гигов свободного места на диске. Ни и разумеется, это случилось тогда, когда промедление смерти подобно, как и бывает в таких случаях. Не только удивил, но и очень, очень он меня огорчил.

Сейчас трудно сказать, по какой извилине пошла моя мысль, но с третьей попытки архив мы (с WinRAR-ом) таки создали. И у меня есть теория, которая обьясняет недостойное поведение этой замечательной программы. Мне лень искать подтверждение этой теории, можете сами проверить или запросить ответа у автора WinRAR-а.

Теория такая. Те два раза, что WinRAR жаловался на недостаток памяти, я вызывал функцию создания архива через контекстное меню WinExplorer. А тот раз, когда он отработал как положено, функция была вызвана через тулбар родной WinRAR-ской оболочки. Что приводит меня к следующей мысли — памяти не хватало WinExplorer-у, поскольку обработчики контекстного меню обычно реализованы как DLL-ки, работающие в адресном пространстве оболочки. Это, кстати, одна из основных причин падений этой оболочки и, как следствие, недовольства пользователей. И недовольны они обычно виндой а не кривыми поделками, лепящими свои обработчики в контекстные меню WinExplorer. Отвлекся, простите.
Так вот, при создании архива с помощью полноценной программы — WinRAR.exe никаких особых ограничений быть не должно — памяти бери сколько есть в свопе. Что я и наблюдал — памяти хватило всем и еще осталось.

Да, чуть не забыл, необычно большой расход памяти был вызван невероятным (для рядового пользователя) количеством пакуемых файлов — их были миллионы. Правда, очень мелких.

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

Комментариев нет:

Отправить комментарий

Архив блога

Ярлыки

linux (241) python (191) citation (186) web-develop (170) gov.ru (159) video (124) бытовуха (115) sysadm (100) GIS (97) Zope(Plone) (88) бурчалки (84) Book (83) programming (82) грабли (77) Fun (76) development (73) windsurfing (72) Microsoft (64) hiload (62) internet provider (57) opensource (57) security (57) опыт (55) movie (52) Wisdom (51) ML (47) driving (45) hardware (45) language (45) money (42) JS (41) curse (40) bigdata (39) DBMS (38) ArcGIS (34) history (31) PDA (30) howto (30) holyday (29) Google (27) Oracle (27) tourism (27) virtbox (27) health (26) vacation (24) AI (23) Autodesk (23) SQL (23) Java (22) humor (22) knowledge (22) translate (20) CSS (19) cheatsheet (19) hack (19) Apache (16) Manager (15) web-browser (15) Никонов (15) functional programming (14) happiness (14) music (14) todo (14) PHP (13) course (13) scala (13) weapon (13) HTTP. Apache (12) Klaipeda (12) SSH (12) frameworks (12) hero (12) im (12) settings (12) HTML (11) SciTE (11) USA (11) crypto (11) game (11) map (11) HTTPD (9) ODF (9) купи/продай (9) Photo (8) benchmark (8) documentation (8) 3D (7) CS (7) DNS (7) NoSQL (7) cloud (7) django (7) gun (7) matroska (7) telephony (7) Microsoft Office (6) VCS (6) bluetooth (6) pidgin (6) proxy (6) Donald Knuth (5) ETL (5) NVIDIA (5) Palanga (5) REST (5) bash (5) flash (5) keyboard (5) price (5) samba (5) CGI (4) LISP (4) RoR (4) cache (4) car (4) display (4) holywar (4) nginx (4) pistol (4) spark (4) xml (4) Лебедев (4) IDE (3) IE8 (3) J2EE (3) NTFS (3) RDP (3) holiday (3) mount (3) Гоблин (3) кухня (3) урюк (3) AMQP (2) ERP (2) IE7 (2) NAS (2) Naudoc (2) PDF (2) address (2) air (2) british (2) coffee (2) fitness (2) font (2) ftp (2) fuckup (2) messaging (2) notify (2) sharepoint (2) ssl/tls (2) stardict (2) tests (2) tunnel (2) udev (2) APT (1) CRUD (1) Canyonlands (1) Cyprus (1) DVDShrink (1) Jabber (1) K9Copy (1) Matlab (1) Portugal (1) VBA (1) WD My Book (1) autoit (1) bike (1) cannabis (1) chat (1) concurrent (1) dbf (1) ext4 (1) idioten (1) join (1) krusader (1) license (1) life (1) migration (1) mindmap (1) navitel (1) pneumatic weapon (1) quiz (1) regexp (1) robot (1) science (1) serialization (1) spatial (1) tie (1) vim (1) Науру (1) крысы (1) налоги (1) пианино (1)