|
|
|
Как отловить ошибки на уровне ОС / оборудования / языка?
|
|||
|---|---|---|---|
|
#18+
Предположим у нас есть идеальный код с точки зрения языка. Но если эта программа будет крутиться неделю, то никто не даст гарантию, что наше оборудование не сбойнет, а может и код операционки пошалить или язык подкнет очень редкий выкрутас... Хочется отлавливать подобные ошибки. В математике есть много легких способов поиска ошибки. Например после нахождения решения дифура можно посмотреть соответствие решения граничным условиям, или устремить какой-нибудь параметр к 0 и посмотреть как изменится уравнение и решение соответственно. Возможно существуют какие-то методы поиска ошибок и в программировании (я понимаю, что это приведет к переделке кода). И возможно даже есть какие-то книжки, которые дают советы по написанию легко- проверяемых программ (не путать со случайными тестами). Мне кроме повторного прохода (если позволяет логика программы, то в обратном направлении) и сравнения результатов пока ничего в голову не приходит. Может есть что-то еще? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2012, 14:54 |
|
||
|
Как отловить ошибки на уровне ОС / оборудования / языка?
|
|||
|---|---|---|---|
|
#18+
GermanV, задай вопрос по С++. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2012, 15:05 |
|
||
|
Как отловить ошибки на уровне ОС / оборудования / языка?
|
|||
|---|---|---|---|
|
#18+
Используй железо повышенной надежности. Память обязательно с ECC. GermanVВ математике есть много легких способов поиска ошибки. А твоя программа что неделю крутить будет? Не "математику"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2012, 15:07 |
|
||
|
Как отловить ошибки на уровне ОС / оборудования / языка?
|
|||
|---|---|---|---|
|
#18+
GermanVПредположим у нас есть идеальный код с точки зрения языка. Но если эта программа будет крутиться неделю, то никто не даст гарантию, что наше оборудование не сбойнет, а может и код операционки пошалить или язык подкнет очень редкий выкрутас... Вы сейчас описали настолько редкую ситуацию, что никому и в голову не приходило создавать какие-то методики для предотвращения или борьбы с таким. Вероятность того что ваша программа сбоит из-за оборудования, ошибки в компиляторе или ОС, а не просто криво написана, стремится к нулю. Ну может, после 20 лет опыта в системном программировании, вы получите вероятность 0.1%. Так что не надо переводить с больной головы на здоровую. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2012, 15:10 |
|
||
|
Как отловить ошибки на уровне ОС / оборудования / языка?
|
|||
|---|---|---|---|
|
#18+
Edd.Dragon, Математику. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2012, 15:25 |
|
||
|
Как отловить ошибки на уровне ОС / оборудования / языка?
|
|||
|---|---|---|---|
|
#18+
Edd.DragonИспользуй железо повышенной надежности. Память обязательно с ECC. а как же тройное резерыирование ЦПУ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2012, 15:31 |
|
||
|
Как отловить ошибки на уровне ОС / оборудования / языка?
|
|||
|---|---|---|---|
|
#18+
Ну так и проверяй результаты. Вообще забудь о компах и представь, что ты решаешь свою дифуру на листке. У тебя есть какие-то способы (кроме проверки результата), которые помогут проверить, не очепятался ли ты в процессе? Сбой железа - это ровно та же очепятка, тот же сбой мозга, руки, помутнение разума. Как можно проверить правильность результата без проверки правильности результата? У меня лично нет датчика, который бы пищал, когда голова хочет написать двойку, а рука пишет тройку. Только проверка, только хардкор Модератор: Тема перенесена из форума "C++". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2012, 15:33 |
|
||
|
Как отловить ошибки на уровне ОС / оборудования / языка?
|
|||
|---|---|---|---|
|
#18+
GermanV, по теме можно искать в гугле: отазоустойчивость, надёжность, живучесть. Из технологий: application cluster, failover, hardware clustering. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2012, 15:41 |
|
||
|
Как отловить ошибки на уровне ОС / оборудования / языка?
|
|||
|---|---|---|---|
|
#18+
Я вот тут подумал, а есть способы проверки правильности способов провеки правильности? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2012, 15:49 |
|
||
|
Как отловить ошибки на уровне ОС / оборудования / языка?
|
|||
|---|---|---|---|
|
#18+
Это типа протестировать тестирование. Думаю что можно. При условии что тест будет проще тестируемого модуля хотя-бы в пропорции Парето. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2012, 15:54 |
|
||
|
Как отловить ошибки на уровне ОС / оборудования / языка?
|
|||
|---|---|---|---|
|
#18+
GermanV, От BSOD'а не спасут алгоритмы, если железо глюканет, то останется minidump в windows - его только ковырять и останется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2012, 16:15 |
|
||
|
Как отловить ошибки на уровне ОС / оборудования / языка?
|
|||
|---|---|---|---|
|
#18+
BSOD-ы как тема для анекдотов конечно интересны. Но их решение лежит в другой плоскости. Если ты разрабочик драйверов оборудования то БСОД ты можешь видеть каждый день пока идёт отладка дравера. А так... для бизнесов. Для Java, .Net БСОД достаточно редок. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2012, 16:22 |
|
||
|
Как отловить ошибки на уровне ОС / оборудования / языка?
|
|||
|---|---|---|---|
|
#18+
Edd.DragonНу так и проверяй результаты. Вообще забудь о компах и представь, что ты решаешь свою дифуру на листке. У тебя есть какие-то способы (кроме проверки результата), которые помогут проверить, не очепятался ли ты в процессе? Сбой железа - это ровно та же очепятка, тот же сбой мозга, руки, помутнение разума. Как можно проверить правильность результата без проверки правильности результата? У меня лично нет датчика, который бы пищал, когда голова хочет написать двойку, а рука пишет тройку. Только проверка, только хардкор Модератор: Тема перенесена из форума "C++". Не в том смысле математика. То есть у меня "перемалывание чисел", но не по каким-то заранее известным математическим правилам. Так сказать, я сам алгоритм обработки придумываю. Ну может есть какой-то паттерн программирования, чтобы такое отловить. Например, в бухгалтерии придумали двойную запись и теперь легко ловят ошибки, если баланс "не сходится". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2012, 16:24 |
|
||
|
Как отловить ошибки на уровне ОС / оборудования / языка?
|
|||
|---|---|---|---|
|
#18+
Edd.DragonЯ вот тут подумал, а есть способы проверки правильности способов провеки правильности? Я привел пример про двойную запись (применять определенные паттерны программирования). Ну на крайний случай- совпадение двух неправильностей :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2012, 16:26 |
|
||
|
Как отловить ошибки на уровне ОС / оборудования / языка?
|
|||
|---|---|---|---|
|
#18+
maytonЭто типа протестировать тестирование. Думаю что можно. При условии что тест будет проще тестируемого модуля хотя-бы в пропорции Парето. Ну что-то подобное я написал о краевых условиях и частных случаях дифура в топике. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2012, 16:27 |
|
||
|
Как отловить ошибки на уровне ОС / оборудования / языка?
|
|||
|---|---|---|---|
|
#18+
GermanVНе в том смысле математика. То есть у меня "перемалывание чисел", но не по каким-то заранее известным математическим правилам. Так сказать, я сам алгоритм обработки придумываю. Если ты - создатель некого ... кхм... алгоритма. То ты должен пройти через некое мат. доказательство правоты или достоверности его результата. Если этого доказательства нет то твой алгоритм это художественный свист. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2012, 16:30 |
|
||
|
Как отловить ошибки на уровне ОС / оборудования / языка?
|
|||
|---|---|---|---|
|
#18+
maytonGermanVНе в том смысле математика. То есть у меня "перемалывание чисел", но не по каким-то заранее известным математическим правилам. Так сказать, я сам алгоритм обработки придумываю. Если ты - создатель некого ... кхм... алгоритма. То ты должен пройти через некое мат. доказательство правоты или достоверности его результата. Если этого доказательства нет то твой алгоритм это художественный свист. Да, не спорю, что свист. Главное, чтобы свистело как я хочу, а не как хочет комп :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2012, 16:39 |
|
||
|
Как отловить ошибки на уровне ОС / оборудования / языка?
|
|||
|---|---|---|---|
|
#18+
Расскажи в общих словах что там у тебя за математика и если не я то кто-то другой (более продвинутый в математике) предложит тебе методику тестирования или самодиагностики. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2012, 16:43 |
|
||
|
Как отловить ошибки на уровне ОС / оборудования / языка?
|
|||
|---|---|---|---|
|
#18+
GermanVНу может есть какой-то паттерн программирования, чтобы такое отловить. Ты можешь вообще на двух не связанных машинах запустить свою прогу, периодически сравнивая результаты. Без всяких паттернов и громоздких алгоритмических трюков. По принципу - одна голова хорошо, а две лучше. А сэкономленное время направить на оптимизацию алгоритма или иную полезную деятельность. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2012, 16:48 |
|
||
|
Как отловить ошибки на уровне ОС / оборудования / языка?
|
|||
|---|---|---|---|
|
#18+
maytonРасскажи в общих словах что там у тебя за математика и если не я то кто-то другой (более продвинутый в математике) предложит тебе методику тестирования или самодиагностики. Да я и сам неплохо математикой владею (учился на Физтехе). Но тут сложный алгоритм, который не опишешь словами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2012, 17:21 |
|
||
|
Как отловить ошибки на уровне ОС / оборудования / языка?
|
|||
|---|---|---|---|
|
#18+
Edd.DragonGermanVНу может есть какой-то паттерн программирования, чтобы такое отловить. Ты можешь вообще на двух не связанных машинах запустить свою прогу, периодически сравнивая результаты. Без всяких паттернов и громоздких алгоритмических трюков. По принципу - одна голова хорошо, а две лучше. А сэкономленное время направить на оптимизацию алгоритма или иную полезную деятельность. скорее всего так и сделаю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2012, 17:22 |
|
||
|
Как отловить ошибки на уровне ОС / оборудования / языка?
|
|||
|---|---|---|---|
|
#18+
GermanVДа я и сам неплохо математикой владею (учился на Физтехе). Но тут сложный алгоритм, который не опишешь словами. Вообще великолепно! Тоесть протестировать его нельзя ибо сложно. И словами описать тоже нельзя. Что после этого остаётся делать? Можно пригласить священника чтоб освятил датацентр. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2012, 17:25 |
|
||
|
Как отловить ошибки на уровне ОС / оборудования / языка?
|
|||
|---|---|---|---|
|
#18+
GermanVПредположим у нас есть идеальный код с точки зрения языка. Но если эта программа будет крутиться неделю, то никто не даст гарантию, что наше оборудование не сбойнет, а может и код операционки пошалить или язык подкнет очень редкий выкрутас...Вот как человек, отвечающий за эксплуатацию вполне реальной системы на железе вполне обычной серверной, вполне ответственно заявляю, что вы собираетесь заняться хернёй за пределами зоны собственной ответственности и компетенции. На скриншоте вверху - секунды из журнала системных событий, внизу - результат деления на 86400. Если правильно помню, предыдущая остановка была связана с работами, требовавших длительного обесточивания (какой-то части) здания. Так вот, за несколько лет эксплуатации системы, я не помню ни одной проблемы из-за "сбоев памяти". Если говорить о "чиста десктопах", то за много лет (моей) работы в IT ситуации типа "оно сбоило, вытащили плашку, протёрли контакты и всё прошло", конечно, бывали, но их можно пересчитать по пальцам одной руки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.12.2012, 17:11 |
|
||
|
Как отловить ошибки на уровне ОС / оборудования / языка?
|
|||
|---|---|---|---|
|
#18+
Basil A. SidorovЕсли говорить о "чиста десктопах", то за много лет (моей) работы в IT ситуации типа "оно сбоило, вытащили плашку, протёрли контакты и всё прошло", конечно, бывали, но их можно пересчитать по пальцам одной руки. Ну это не совсем та проблема. Имеются ввиду не аварии по вине железа, а ошибки во время работы. Винт имеет право прочесть неправильно один бит на 10-1000 прочитанных терабайт (это с учетом проверки контрольных сумм). Память - аналогично (порядок цифр не помню). Вот только никто не сказал, что эта ошибка произойдет именно в обрабатываемых данных и что она как-то себя проявит и повлияет на результат. А когда никто не мешает произвести расчет дважды, то смысл забивать себе голову этим совсем исчезает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.12.2012, 02:35 |
|
||
|
Как отловить ошибки на уровне ОС / оборудования / языка?
|
|||
|---|---|---|---|
|
#18+
[quot Edd.Dragon Ну это не совсем та проблема. Имеются ввиду не аварии по вине железа, а ошибки во время работы. Винт имеет право прочесть неправильно один бит на 10-1000 прочитанных терабайт (это с учетом проверки контрольных сумм). Память - аналогично (порядок цифр не помню). Вот только никто не сказал, что эта ошибка произойдет именно в обрабатываемых данных и что она как-то себя проявит и повлияет на результат. А когда никто не мешает произвести расчет дважды, то смысл забивать себе голову этим совсем исчезает.[/quot] Вот и я про тоже! А насчет не проявит: ну извините, если вместо одного числа (например, 100200) у меня в расчетах будет (120200), то для меня это критично. Думаю двойной расчет даст ответ этому спору. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.12.2012, 15:41 |
|
||
|
|

start [/forum/topic.php?fid=16&msg=38096430&tid=1341978]: |
0ms |
get settings: |
8ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
65ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
68ms |
get tp. blocked users: |
2ms |
| others: | 223ms |
| total: | 400ms |

| 0 / 0 |
