Оригинальный способ восстановления данных с жесткого диска: Freeze your hard drive to recover data: Myth or reality? Надо положить убитый жесткий диск в холодильник, лучше на сутки. Потом он может проработать минут 20, а может и полчаса. Скорее всего это хватит, чтобы скопировать с него особенно важные данные. Автор поста провел эксперимент с нерабочим жестким диском, диск ожил. Рассказ сопровождается красочными иллюстрациями.
Несмотря на то, что способ звучит анекдотично, почему бы и не попробовать? Хуже уже все равно не будет. В комментариях к вышеупомянутому посту народ рассказывает чудесные способы спасения данных этим способом.
Перед засовыванием диска в холодильник желательно его положить во что-нибудь. А то у одного из комментаторов он покрылся льдом, но когда слегка обтек, все равно заработал.
В комментариях идею активно развили, в том числе предложили несколько способов подключения жесткого диска, не вынимая его из холодильника.
среда, июля 19, 2006
Восстановление данных с жесткого диска путем заморозки
Категории: fun
понедельник, июля 10, 2006
Оценка производительности контейнеров
Standard Container Benchmark - программка, сравнивающая прозиводительность различных контейнеров. Задача, которая выбрана для оценки производительности: удаление дубликатов из последовательности чисел типа double. Примечательно в этой программке то, что ее написали Степанов со Страуструпом специально для программистов. Чтобы было удобнее выбирать контейнер для своей задачи, чтобы можно было сравнить различные реализации контейнеров, поэкспериментировать с настройками оптимизации в компиляторе. В результате получается что-то вроде такого:
| size | array | vector with pointers | vector with iterators | deque | list | set | multiset |
| 10 | 1.91 | 2.48 | 4.66 | 8.20 | 22.50 | 6.95 | 11.05 |
| 100 | 1.39 | 1.34 | 3.09 | 4.67 | 8.52 | 5.03 | 7.22 |
| 1000 | 1.25 | 1.25 | 2.97 | 3.98 | 7.52 | 4.56 | 7.05 |
| 10000 | 1.41 | 1.31 | 2.75 | 3.77 | 8.28 | 4.81 | 7.61 |
| 100000 | 1.17 | 1.19 | 2.52 | 3.25 | 11.08 | 7.53 | 14.48 |
| 1000000 | 1.48 | 1.56 | 3.23 | 4.27 | 12.34 | 9.86 | 11.08 |
Ссылки по теме:
comp.lang.c++.moderated Container Performance. Пост Страуструпа с этой программой, который вылился в обсуждение производительности контейнеров на разных платформах.
openwatcom.contributors OWSTL benchmark experiment. Сравнительно недавнее обсуждение прозводительности контейнеров в OWSTL.
Категории: cpp
воскресенье, июля 02, 2006
Подсчет количества установленных битов в беззнаковом целом
Это одна из известных задачек, которую задают на собеседованиях: дано беззнаковое целое число, надо подсчитать количество бит, установленных в единицу. Как это сделать как можно быстрее?
Самый простой вариант - тупо пройтись по числу и проверить каждый бит. О скорости тут речь не идет. Несколько быстрее будет проверять последний бит, затем использовать операцию сдвига и после каждого сдвига проверять исходное число на 0.
Дела пойдут гораздо быстрее, если предподсчитать количество единиц. Это можно сделать для 8-битовых и 16-битовых целых, дальше уже сложнее...
На страничке Counting Number of On Bits in an Integer есть эти и другие, более мудрёные варианты решения этой задачи, все с примерами кода и с сравнением по скорости. Предподсчет быстрее всех.
Категории: programming
понедельник, июня 26, 2006
Интервью с Тимом Суини
Тим Суини (Tim Sweeney) рассказывает о применении ускорителей физики, об UT2007, об использовании DX10.
Есть видео, есть в виде текста.
