170 похожих чатов

Допустим, у меня два десятка строк. Конструкции типа cmd += fmt.Sprintf("xxx=%s,",

x)
я перевел частично на стрингбилдер
sb.WriteString(fmt.Sprintf())

Вопрос, а насколько дорого обходится Sprintf?
Есть ли смысл идти дальше, доводить до абсурда типа
sb.WriteString("xxx=")
sb.WriteString(x)
sb.WriteString(",")
??

22 ответов

30 просмотров

> насколько дорого примерно на 3.58

енот- Автор вопроса
Dmitry
> насколько дорого примерно на 3.58

насколько дорого относительно приведенной ниже конструкции со WriteString?

Напишите бенчмарк

Это не доводить до абсурда, это то как билдер билдит.

а вочему это вообще важно? вы не пробовали померять, какую часть ресурсов ваши довольно неэффективные строковые операции отъедают? (никакую) PS cmd += fmt.Sprintf("xxx=%s,", x) - это плохо cmd = fmt.Sprintf(“%sxxx=%s,", cmd, x) - лучше

Daniel Podolsky
а вочему это вообще важно? вы не пробовали померя...

лучше-хуже тоже спорно. есть оптимизации ж. меряяять над, а без измерений - 3.58 самый верный ответ.

Dmitry
лучше-хуже тоже спорно. есть оптимизации ж. меряяя...

не, там бесспорно, там лишняя аллокация всплывает

Daniel Podolsky
не, там бесспорно, там лишняя аллокация всплывает

хо хо. сегодня "вслывает", а завтра компилер подпилят под такие кейсы и не будет - только мерять. Я вам могу показать на .net где один и тот же код компилится совсем в разное (как раз про строки) - оптимизатор делает своё дело (за гошку не скажу так сразу - ибо не изучал). вот статья о .net - не думаю что подобное невозможно (или не будет возможно) в го.

Dmitry
хо хо. сегодня "вслывает", а завтра компилер подпи...

ну вот как оптимизатор начнет это оптимизировать - так и поговорим. но - не начнет, потому что, повторюсь, на интегральную производительность это не влияет никак

Daniel Podolsky
ну вот как оптимизатор начнет это оптимизировать -...

ну ок, не хотите чтобы тесты падали - не пишите тесты - тоже вариат, чо.

не все мнения едины мне подход что когда то за горизонтом планирования что то измениться неблизок

d. one-man
не все мнения едины мне подход что когда то за гор...

мне проще написать бенч, загнать его в ci и смотреть на график графаны + добавить алерты если надо чем "думать вот это всё".... хотя из коробки, конечн, снапшотинга бенчмарков нету

а где вы там учитали про .net / cpp ? в том сообщении что процитировали

Евгений Омельченко
> есть оптимизации

ну например для разных типов есть оптимизации в fmt sprintf - это я по-памяти, мож еще что накрутили, а может еще накрутят. я не понимаю: вы не любите бенчи или что?)

softland Виталий Сергиенко
я нет ))

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

А зачем доводить до абсурда Используй и билдер и fmt Есть же fmt.Fprintf, пиши им в буфер стринг билдера напрямую. var b strings.Builder b.Grow(32) // ну или сколько тебе там надо fmt.Fprintf(&b, "xxx=%s”, x)

O. J.
А зачем доводить до абсурда Используй и билдер и ...

Вот это как раз абсурд. Делать grow на скорее всего не оптимальную величину вместо writestring который оптимальный.

Похожие вопросы

Обсуждают сегодня

Добрый вечер. Есть вопрос, а может и предложение. Был у меня диалог в другой группе о делфи и я задался вопросом: "А нельзя ли в делфи цвет //коментария и {комментария} сде...
Kraszx
24
Мдя, прикол, боевая сборка запускается (именно под отладчиком) после F9 примерно полторы минуты (97 секунд если быть точным). Начал копать - проблема детектится сразу - зависа...
Александр (Rouse_) Багель
38
Всем привет! Подскажи, пожалуйста, как передать в TComboBox сразу значение и id записи. На Delphi я делал так: ComboBox1.Items.AddObject('Какое-то значение', Pointer(id запис...
Евгений
13
я так понимаю, я так подозреваю, что создание такого плагина для человека, кто умеет писать плагины для делфи потребует минут 5-10 времени. но это мое подозрение. хотелось бы ...
Kraszx
7
Товарищи, кто работа с iphelper? Или может я в самой логике ошибки фигачу, не пойму.... var ifTable : PMIB_IFTABLE; size, corSize: DWORD; Buffer ...
Warfarellen
4
Здравствуйте, вопрос по структурам данных. Были у вас случаи, когда пришлось писать деревья или двунаправленные списки?
/ /
50
Коллеги, добрый вечер. Создаю коллекцию от TFPGMap, ключ - перечисление, значение - целое. Нужно отсортировать коллекцию по значению. Как это можно сделать?
Kirill Filippenok
11
Привет, такой вопросик появился кажется ли вам что Rust слишком сложный/строгий для высокоуровневого программирования и слишком "безопасный"/строгий для низкоуровневого?
Крокант
10
Скажи а ты когда этот канал создавал ты уже дельфи не любил, или это со временем пришло?
Роман Лях (rgreat)
18
Всем привет! Использую кастомное модальное диалоговое окошко, все по классике - mrOK, mrCancel как ModalResult. Однако есть нюанс - в главной форме есть универсальный обработч...
Олег Гранишевский
20
Карта сайта