Blerg!
Черт, я попытался вставить это в комментарий, но форматирования было недостаточно, поэтому мне пришлось прибегнуть к ответу.
Статистика
Причина, по которой вы этого не видели, заключается в том, что вероятность того, что вы это видите, низкая, и, что более важно, вы не смотрели. Вероятность того, что вы заметили ошибку памяти, рассчитывается исходя из:
- космический луч, падающий на Землю
- луч падает на ваше местоположение
- луч не мешает и не поглощается ничем другим
- луч падает на ваш компьютер
- луч попадает в вашу память
- луч немного переворачивается в оперативной памяти
- бит находится в блоке выделенной в данный момент памяти
- используемая память либо:
- протестировано программой типа memtest86+
- протестировано в нужный момент, чтобы обнаружить ошибку (например, между микросекундами, когда программа записывает память, а затем считывает ее обратно и сравнивает)
- выделяется блоку исполняемого кода, в этом случае также:
- измененный бит значительно модифицирует код настолько, чтобы оказать существенное влияние на код
- резкий эффект вызывает его крах
- сбой программы на самом деле происходит сбой, а не просто исчезает
- программа - это то, что вы замечаете и заботитесь о
- вы не просто отбрасываете его как глючную программу
Конечно, это если мы говорим о переходных, прерывистых ошибках, таких как космические лучи, и помехах от другой электроники. Если модуль ОЗУ действительно неисправен, то в какой-то момент вы почти наверняка столкнетесь с проблемами (хотя даже тогда вполне возможно, что если вы никогда не используете всю физическую ОЗУ в любой момент времени, и дефект окажется небольшим и полностью локализованным). в части, которая никогда не используется вами, тогда вы можете не увидеть ошибку).
Вероятность кратковременной ошибки действительно может быть удивительно высокой, но вы, вероятно , видели ошибки памяти на протяжении многих лет и просто не замечали их из-за двух из перечисленных выше элементов списка: исполняемого кода и игнорирования ошибок.
Примеры
Если измененный бит попадает в часть данных, вы можете даже не заметить этого, потому что он может легко утонуть.
Например, если немного перевернулся в блоке текстовых данных, то вы можете заметить, что The end.
превратился в Tje end.
, но вместо того, чтобы заметить, что h
был заменен на j
потому что один бит перевернулся (не стесняйтесь, подтвердите, если хотите), вы, скорее всего, просто предположите, что ваш палец нажал не ту клавишу, потому что они оказались правы рядом и просто исправьте ошибку.
Хуже того, если перевернутый бит оказался частью изображения, аудио или видео файла, вы можете вообще ничего не заметить. Если он просто оказался в нужном месте, то это может привести к заметному изменению, например, к неправильной ширине или высоте изображения, или к легкому хлопающему звуку в песне, или к небольшому искажению в видео, которое вызывает кратковременную блочность. во время декодирования. Однако, учитывая большой размер медиа-файлов, вероятность того, что один бит окажется в нужном месте, крайне мала. Гораздо более вероятно, что он немного изменит цвет одного пикселя (например, темно-красный на немного темно-красный), и вы, вероятно, никогда не заметите. Это может изменить один пик формы волны песни, так что она имеет немного меньшую амплитуду, и вы, вероятно, никогда не заметите. Это может изменить один пиксель в одном кадре видео, и вы, вероятно, не могли бы заметить.
Предостережение
Страшный факт заключается в том, что такого рода необнаруженная, временная ошибка действительно может закрасться и остаться незамеченной. Вот почему я действительно беспокоюсь об использовании флэш-носителей для резервного копирования, потому что иногда они портятся, и если вы не заметите, то повреждение может проникнуть в вашу резервную копию и в конечном итоге навсегда. Более того, тестирование на наличие повреждений может быть затруднено, поскольку ожидаются изменения, поэтому вам придется вручную проверять каждое отдельное изменение, что для двоичных файлов будет кошмаром.
Увезти
Я полагаю, что положительной стороной, если она есть, является то, что, как я сказал в списке, изменение должно произойти, чтобы получить часть данных, которая действительно важна. Для большинства людей вероятность того, что он попадет в часть важных, незаменимых данных, которые должны быть сохранены, имеет тенденцию быть очень низкой.
Вы можете использовать такую программу, как memtest, чтобы проверить вашу оперативную память на наличие дефектов. Если это пройдет, то вам нужно только беспокоиться о «шансах один на миллиард» (я оставлю точный расчет кому-то другому, если это необходимо), когда часть важных данных будет повреждена, в противном случае - немного «Бит-гниль» здесь или там, как правило, мало что делает, кроме возможного сбоя программы и заставляет вас ругаться с разработчиками (хотя даже тогда, если он не сделает это снова…)