Сегодня мы будем разгонять склеивание коротких строк в Go на 30%. Причём для этого нам не нужно будет модифицировать сам Go, всё это будет реализованно в виде сторонней библиотеки. Под катом вас ждут: Сравнение +, strings.Builder и собственной функции конкатенации Детали внутреннего устройства строк в Go Совсем немного ассемблера Данную статью можно также считать предлогом обсудить CL123256: runtime,cmd/compile: specialize concatstring2. Идеи по улучшению этого change list'а приветствуются. Читать дальше →
Это ответ на статью «Сколько строк на C нужно, чтобы выполнить a + b в Python?» где количество строк так и не указано.Сразу оговорюсь покрывать все сценарии для python по количеству строк я не собираюсь — слишком много вариантов, слишком лень. Но вот вопрос, сколько уйдет питона нужно строк, что бы сложить 2 числа? Будет ли разница сохранять эти числа в переменные или разницы никакой? Добро пожаловать под кат.
Не так давно прочёл статью об оптимизации производительности Java-кода — в частности, конкатенации строк. В ней остался поднятым вопрос — почему при использовании StringBuilder в коде под катом программа работает медленнее, чем при простом сложении. При этом += при компиляции превращаются в вызовы StringBuilder.append(). У меня сразу появилось желание разобраться в проблеме. Читать дальше →
Недавно читали код и наткнулись на примерно такой такой фрагмент. bool *t = new bool[X][Y]; // много строк switch (t[M][N]) { case true: // много строк break; case false: // много строк break; default: // много строк break; } Сразу возникает вопрос: зачем нужна ветка default? Если переменная не равна true, то она равна false. Однокурсник сказал: «Для отладки». Думаю: что тут можно отлаживать? Но не всё так просто. Читать дальше →