Изначально эта статья задумывалась как небольшой бенчмарк для собственного использования, да и вообще статьёй быть не планировалась, однако, в процессе проведения замеров всплыли некоторые интересные особенности в реализации архитектуры JavaScript, сильно влияющие на производительность конечного кода в отдельных случаях. Предлагаю, и вам, ознакомится с полученными результатами, попутно также разобрав некоторые смежные темы: циклы for, окружение (контекст выполнения) и блоки.
Рубрика «for»
Зависимость производительности кода от контекста объявления переменных в JavaScript
2019-09-30 в 12:43, admin, рубрики: ECMAScript, for, javascript, let, var, Алгоритмы, блоки, высокая производительность, контекст, окружение, ооп, Программирование, производительность, цикл forО фундаментальных ошибках в дизайне языков программирования
2016-09-19 в 9:32, admin, рубрики: C, c++, for, Анализ и проектирование систем, Блог компании Инфопульс Украина, ПрограммированиеКак-то раз мне на глаза попалась статья о том, что самой дорогой ошибкой в дизайне языков программирования было решение определять окончание строки в C по NULL-байту. Один из вариантов перевода этой статьи на Хабре: habrahabr.ru/post/126566 (хотя я, по-моему, читал другой). Эта статья меня немного удивила. Во-первых, как-будто в те времена экономии каждого бита памяти можно было шикануть и выделить ещё 2-4 байта в каждой строке на хранение её размера. Во-вторых, никаких особо катастрофических последствий это решения для программиста не несёт. Ошибок, которые можно по этому поводу совершить я могу придумать целых две: неверно выделить память для строки (забыть место под NULL) и неверно записать строку (забыть NULL). О первой ошибке уже предупреждают компиляторы, избежать второй помогает использование библиотечных функций. Всей-то беды.
Значительно большей проблемой времён дизайна языка С (и затем С++) мне кажется другое — оператор for. При всей его кажущейся безвредности — это просто кладезь потенциальных ошибок и проблем.
Давайте вспомним классическое его применение:
for (int i = 0; i < vec.size(); i++)
{...}
Что же здесь может пойти не так?
Читать полностью »
Что быстрее while (true) или for (;;)?
2013-10-22 в 15:39, admin, рубрики: c++, for, gcc, objdump, while, метки: c++, for, gcc, objdump, while, ассемблерВ сырцах разных авторов видел я разные варианты вечного цикла. Чаще всего мне встречались следующие:
while (true) {
...
}
и
for (;;) {
...
}
Поскольку каждый защищал “свой вечный цикл” как родного, я решил разобраться. Кто же пишет более оптимальный код.
Читать полностью »
foreach or for that is the question
2013-09-02 в 20:00, admin, рубрики: .net, c#.net, for, foreach, метки: c#.net, for, foreachВопрос о выборе цикла for/foreach стар, как мир. Все мы слышали, что foreach работает медленнее for-а. Но не все знаем почему… А вообще так ли оно?
Когда я начинал изучать .NET, один человек сказал мне, что foreach работает в 2 раза медленнее for-а, без каких-либо на то обоснований, и я принял это как должное. Теперь, когда чьих-то слов мне мало, я решил написать эту статью.
В этой статье я исследую производительность циклов, а так же уточню некоторые нюансы.
Итак, поехали!
Читать полностью »
Perl6 — Условные операторы, циклы
2012-10-15 в 16:07, admin, рубрики: for, loop, perl, perl6, Программирование, циклы, метки: for, loop, perl6, циклы 1. Особенности работы с переменными и литералами в Perl6
2. Perl6 — Операции над переменными, анонимные блоки
В данной статье мы рассмотрим условные операторы и циклы, а также проведем несколько небольших экспериментов по их использованию.
Оптимизация цикла for — миф или реальность?
2012-10-09 в 12:01, admin, рубрики: for, javascript, optimization, оптимизация кода, метки: for, javascript, optimization, оптимизация кодаГоворя об оптимизации JavaScript можно увидеть множество примеров того, как следует делать или не делать. Мнения некоторых авторов звучат убедительно, их примеры внушают уверенность. И главным образом, подобных рекомендаций в сети много, но значительно меньше статистики по ним. Вот и сегодня на страницах GitHub'а в поле зрения был пойман ранее знакомый теоретический материал по оптимизации циклов for.