Если верить фразе «два переезда эквивалентны одному пожару», то за последние 6 лет я горел два раза (или три – это как посчитать). Причем если в начале это был маленький костерок, то со временем это начинает походить на настоящий пожар. Количество ненужного хлама очень нужных и полезных в хозяйстве вещей растет бешенными темпами. Откуда только берется?
Read more…
Я окончательно убедился в том, что алкоголь крайне вреден для здоровья. Казалось бы ещё вчера всё было в порядке и ничего не предвещало беды, а уже сегодня случилось ЭТО – у винчестера на моём ноутбуке поехала крыша. Похоже, что он вообразил себя напольными часами с кукушкой, иначе как объяснить это громкое ритмичное тиканье? А может у него в молодости был роман с симпатичной красоткой-часами, и теперь он ударился в воспоминания на старости лет? Как бы то ни было, алкоголь сыграл фатальную роль во всей этой истории. Дело в том, что чуть больше месяца винчестер с головой искупался в шампанском. Естественна такая выходка не прошла бесследно. Несколько дней он был на грани жизни и смерти. Я уже готовился написать некролог, перебирая в голове подходящие фразы: “… ушел из жизни как настоящий аристократ”, “… погиб в неравном бою с пузырками CO2” и т.п. Однако, к моему удивлению, через пару дней он перестал нести бред-блоки и быстро пошел на поправку…
После выздоровления прошел целый месяц. Этот неприятный эпизод почти забылся. А зря. Всё таки выбор напитка должен был внушить подозрения. Почему не кофе, в конце концов? Коварный зелёный змий исподтишка нанёс последний удар. Видимо что-то всё же нарушилось в его организме, так что малейшая встряска привела в печальному финалу. Прощай IC25N060ATMR04-0! Ты был надёжным, хотя и весьма неторопливым (4200 RPM, sic!), другом.
Вот так должен выглядеть график использования полосы пропускания сетевого соединения (снимок из Task Manager’а):
Утащил c Raider’s Programming Blog. Отличная презентация, посвященная «стоимости» исключений с точки зрения производительности кода: Exception Hanlding Cost (Google Video, 1 час 3 минуты). Автор презентации, Kevin Frei, непосредственно работал над поддержкой обработки исключений в компиляторе Visual C++ для платформы x64. Так что информация из первых рук, так сказать.
Power Point слайды: http://www.nwcpp.org/Downloads/2006/ehc.ppt
История про ExitProcess получила несколько неожиданное продолжение. Оказалось, что для того, чтобы избежать блокировки на критической секции, захваченной другим потоком во время ExitProcess, в функцию EnterCriticalSection был добавлен код, обрабатывающий эту ситуацию. Начиная с Windows XP EnterCriticalSection проверяет захвачена ли секция и, в случае если захвачена, сверяет идентификатор текущего потока с идентификатором захватчика. А вот дальнейшее поведение зависит от версии операционной системы.
Read more…
Как вы думаете, какая их двух функций опаснее: ExitProcess или TerminateProcess? Ответ, конечно, зависит от определения того, что считать более безопасным. Однако если задать этот вопрос нескольким людям, большинство автоматически укажет на TerminateProcess. Почему? Потому что TerminateProcess в отличие от ExitProcess не делает попыток освободить занятые ресурсы. К примеру, программа не сможет записать несохранённые данные на диск, тем самым нарушив их целостность.
Read more…
Recent Comments