Поддерживаю. Наличие многословного текста сообщения и кнопки ОК автоматом подталкивает пользователей нажать её побыстрее и продолжить работу не читая сообщения вообще, что влечет за собой порой не совсем ожидаемое действие от программы.
Вводная статья (обзорная) в архитектуру железок и проблему производительности приложений. Если автор хотел раскрыть тему производительности, то, думаю, этого не получилось. Только масса вопросов и домыслов родилась у всех… надо либо раскрыть до конца, либо не соваться в эту тему.
Статья породила в комментариях (мне кажется) холи вар среди сторонников managed и unmanaged языков программирования. Одни ругают их за «обжорство» и говорят «ай да низкоуровневое программирование», другие — отстаивают, хвалят их за скорость разработки приложений. По мне так надо всегда выбирать между оптимизированным, вылизанным, быстрым приложением и скоростью его разработки. В первую очередь заказчику (в конечном счёте мы все пишем для какого-то заказчика) надо работающее (корректно, без багов) приложение и в срок. А уж во вторую очередь приложение оптимизированное. Сразу поймать двух зайцев не удастся, уж поверьте. И лучше получит сначала первое, потом второе.
Продавец потерял 15р... Рассуждал так:
1. Было у продавца N рублей + шапка (+10р) = (N+10)
2. Приходит покупатель, дает фальшивку (0р), прибегает мальчик от соседки, возвращает в кассу +25р (настоящие). Получаем (N+10)+25
3. Продавец отдает шапку (т.е. 10р, эквивалент) и 15р сдачи = ((N+10)+25)-10-15
4. Приходит соседка и просит вернуть деньги. Продавец возвращает, как полагается 25р = ((N+10)+25)-10-15)-25
5. Считаем = (N-15)
Статья породила в комментариях (мне кажется) холи вар среди сторонников managed и unmanaged языков программирования. Одни ругают их за «обжорство» и говорят «ай да низкоуровневое программирование», другие — отстаивают, хвалят их за скорость разработки приложений. По мне так надо всегда выбирать между оптимизированным, вылизанным, быстрым приложением и скоростью его разработки. В первую очередь заказчику (в конечном счёте мы все пишем для какого-то заказчика) надо работающее (корректно, без багов) приложение и в срок. А уж во вторую очередь приложение оптимизированное. Сразу поймать двух зайцев не удастся, уж поверьте. И лучше получит сначала первое, потом второе.
Кому действительно интересна тема низкоуровневой оптимизации тем рекомендую почитать вот эти вещи:
The Software Optimization Cookbook
The Software Optimization Cookbook, Second Edition
The Software Vectorization Handbook
Для оптимизации на многоядерных железках:
Multi-Core Programming
Optimizing Applications for Multi-Core Processors
Это, так сказать, отправная точка для тех, кому интересно. А вот «клубничка» — Code Optimization: Effective Memory Usage от Криса Касперского.
6. До и после суммы надо сравнить: (N-15)-(N+10) = -25
Собственно 25р фальшивки разменял продавец :-D. Резюмируем: продавец лажанулся на 25р.
1. Было у продавца N рублей + шапка (+10р) = (N+10)
2. Приходит покупатель, дает фальшивку (0р), прибегает мальчик от соседки, возвращает в кассу +25р (настоящие). Получаем (N+10)+25
3. Продавец отдает шапку (т.е. 10р, эквивалент) и 15р сдачи = ((N+10)+25)-10-15
4. Приходит соседка и просит вернуть деньги. Продавец возвращает, как полагается 25р = ((N+10)+25)-10-15)-25
5. Считаем = (N-15)