BMINAIEV_BLOG Telegram 24
Воспроизводимость результатов

Я уже жаловался на то, как сложно измерять скорость программ, потому что слишком много внешних обстоятельств влияет на результат. Сегодня хочу еще раз пожаловаться, но уже на более простую вещь. Сложно писать программы, которые выдают один и тот же результат, если их запустить два раза.

Если программа работает недетерминированно, то поиск ошибок превращается в какой-то кошмар. То баг воспроизводится, то нет. Как понять из-за чего получается разный результат? Если вы пишете на C++, то с довольно большой вероятностью у вас Undefined Behavior, поздравляю. Можно поискать его с разными санитайзерами, иногда помогает.

В Rust таких проблем почти нет, но иногда все равно программы работают по-разному. В такие моменты думаешь, где ты поиспользовал random и забыл об этом. Так вот, два последних раза, когда у меня так было, я сложил какие-то объекты в хеш-таблицу, а потом проитерировался по ней. В Rust хеш-таблицы специально используют разный seed на каждом запуске, и это хорошо. Например, так сложнее подобрать данные, на которых она начнет тормозить. А еще заставляет программистов не закладываться на конкретную реализацию хеш-функций.

В общем с одной стороны хорошо, а с другой — источник недетерминизма, о котором постоянно забываешь. Хочу линтер, который предупредит меня в следующий раз, когда я захочу проитерироваться по хеш-таблице. Или вообще автоматику, которая говорит в каком месте программа работает не так, как в прошлый раз.



tgoop.com/bminaiev_blog/24
Create:
Last Update:

Воспроизводимость результатов

Я уже жаловался на то, как сложно измерять скорость программ, потому что слишком много внешних обстоятельств влияет на результат. Сегодня хочу еще раз пожаловаться, но уже на более простую вещь. Сложно писать программы, которые выдают один и тот же результат, если их запустить два раза.

Если программа работает недетерминированно, то поиск ошибок превращается в какой-то кошмар. То баг воспроизводится, то нет. Как понять из-за чего получается разный результат? Если вы пишете на C++, то с довольно большой вероятностью у вас Undefined Behavior, поздравляю. Можно поискать его с разными санитайзерами, иногда помогает.

В Rust таких проблем почти нет, но иногда все равно программы работают по-разному. В такие моменты думаешь, где ты поиспользовал random и забыл об этом. Так вот, два последних раза, когда у меня так было, я сложил какие-то объекты в хеш-таблицу, а потом проитерировался по ней. В Rust хеш-таблицы специально используют разный seed на каждом запуске, и это хорошо. Например, так сложнее подобрать данные, на которых она начнет тормозить. А еще заставляет программистов не закладываться на конкретную реализацию хеш-функций.

В общем с одной стороны хорошо, а с другой — источник недетерминизма, о котором постоянно забываешь. Хочу линтер, который предупредит меня в следующий раз, когда я захочу проитерироваться по хеш-таблице. Или вообще автоматику, которая говорит в каком месте программа работает не так, как в прошлый раз.

BY Боря программирует


Share with your friend now:
tgoop.com/bminaiev_blog/24

View MORE
Open in Telegram


Telegram News

Date: |

A few years ago, you had to use a special bot to run a poll on Telegram. Now you can easily do that yourself in two clicks. Hit the Menu icon and select “Create Poll.” Write your question and add up to 10 options. Running polls is a powerful strategy for getting feedback from your audience. If you’re considering the possibility of modifying your channel in any way, be sure to ask your subscribers’ opinions first. With the sharp downturn in the crypto market, yelling has become a coping mechanism for many crypto traders. This screaming therapy became popular after the surge of Goblintown Ethereum NFTs at the end of May or early June. Here, holders made incoherent groaning sounds in late-night Twitter spaces. They also role-played as urine-loving Goblin creatures. You can invite up to 200 people from your contacts to join your channel as the next step. Select the users you want to add and click “Invite.” You can skip this step altogether. Add up to 50 administrators The group’s featured image is of a Pepe frog yelling, often referred to as the “REEEEEEE” meme. Pepe the Frog was created back in 2005 by Matt Furie and has since become an internet symbol for meme culture and “degen” culture.
from us


Telegram Боря программирует
FROM American