↑↑↓↓←→←→ⒷⒶ Войти !bnw Сегодня Клубы

Если известно, что obj != null, то лучше писать sb.append(obj.toString()), чем sb.append(obj), чтобы избежать лишнего вызова String.valueOf(obj)

Рекомендовали: @komar @l29ah
#RD3XZM / @hirthwork / 3677 дней назад

ну бля охуеть теперь
#RD3XZM/ZNQ / @krkm / 3677 дней назад
нахуй тебе вообще StringBuilder, там компайлер всё подставит как надо же, конкатенируй плюсиками // мы кажется это уже обсуждали
#RD3XZM/037 / @mugiseyebrows / 3677 дней назад

@mugiseyebrows таки компайлер не подставит всё как надо. алсо, конкатенацию строк плюсиками в цикле делают только мудаки

#RD3XZM/GVV / @hirthwork --> #RD3XZM/037 / 3677 дней назад

@krkm ну бля охуей теперь

#RD3XZM/LJW / @hirthwork --> #RD3XZM/ZNQ / 3677 дней назад
@hirthwork внатуре, знач мне напиздели
#RD3XZM/G6A / @mugiseyebrows --> #RD3XZM/GVV / 3677 дней назад

уау // поссал в ебло за прожигание энтропии на бездарную микрооптимизацию

#RD3XZM/LMJ / @ulidtko / 3677 дней назад
#RD3XZM/BHO / @krkm --> #RD3XZM/LMJ / 3677 дней назад
@mugiseyebrows или там речь была про другой язык
#RD3XZM/VGE / @mugiseyebrows --> #RD3XZM/G6A / 3677 дней назад

... избежать лишнего вызова

ты не понимаешь, что этот твой лишний вызов произойдёт ТУТ ЖЕ за первым, и за счёт прогретости кешей выполнится мгновенно [на два порядка быстрее первого вызова] ?

ты не понимаешь, что пока кратчайшее описание твоей микрооптимизации занимает меньше трех страниц папира — скорее всего, где-то эта оптимизация делается уже и лучше автоматически?

// не имея измерений подперднул с дивана и немножко промочил себе лицо капелькой собственной мочи

#RD3XZM/G5A / @ulidtko / 3677 дней назад
@ulidtko поскакать не забыл?
#RD3XZM/GS5 / @krkm --> #RD3XZM/G5A / 3677 дней назад

@hirthwork конкатенацию строк плюсиками в цикле делают абстракциебоги, посмеиваясь над ничтожествами с C-style нультерминированными строками из прошлого тысячелетия // которые даже не поддерживают O(1) .length()

#RD3XZM/KZO / @ulidtko --> #RD3XZM/GVV / 3677 дней назад

@krkm шо

#RD3XZM/PUM / @ulidtko --> #RD3XZM/GS5 / 3677 дней назад
@ulidtko > ты не понимаешь, что пока кратчайшее описание твоей микрооптимизации занимает меньше трех страниц папира — скорее всего, где-то эта оптимизация делается *уже* и *лучше* автоматически? гэцэцэ тебе тут штоле
#RD3XZM/S6F / @komar --> #RD3XZM/G5A / 3677 дней назад
@ulidtko > конкатенацию строк плюсиками в цикле делают долбоебы-хуяскелисты fxd
#RD3XZM/YNQ / @komar --> #RD3XZM/KZO / 3677 дней назад

@komar пук

#RD3XZM/0T8 / @ulidtko --> #RD3XZM/YNQ / 3677 дней назад
@ulidtko Хули «пук»? Ты посчитал оверхед от каждого выделения памяти на новую строку нового размера после каждого твоего плюсика?
#RD3XZM/Y0K / @komar --> #RD3XZM/0T8 / 3677 дней назад

@komar хули оверхед? а что если я smartass и заранее знаю верхний лимит по длине? что теперь, съел?

#RD3XZM/2OO / @ulidtko --> #RD3XZM/Y0K / 3677 дней назад
@ulidtko Какой верхний лимит? Мне насрать, что ты там знаешь. Твой плюсик не может знать длину конечной строки.
#RD3XZM/6RP / @komar --> #RD3XZM/2OO / 3677 дней назад

@komar я могу её знать (потому что я пишу цикл)

#RD3XZM/3Q4 / @ulidtko --> #RD3XZM/6RP / 3677 дней назад
@ulidtko сорь канеш, что отвлекаю, но ты в этом мире никто
#RD3XZM/L02 / @krkm --> #RD3XZM/3Q4 / 3677 дней назад
@ulidtko Да хоть анусом своим пиши. Плюсик это умнее не сделает.
#RD3XZM/4KK / @komar --> #RD3XZM/3Q4 / 3677 дней назад

@krkm говна поешь

#RD3XZM/BMX / @ulidtko --> #RD3XZM/L02 / 3677 дней назад
@ulidtko спасибо
#RD3XZM/TM3 / @krkm --> #RD3XZM/BMX / 3677 дней назад
ето чувство когда не можешь сделать join() на List<String> без third party library
#RD3XZM/0PL / @mugiseyebrows / 3677 дней назад
@mugiseyebrows канпелируй в жс
#RD3XZM/0OX / @krkm --> #RD3XZM/0PL / 3677 дней назад
@mugiseyebrows попробуй concat // деды так join называли
#RD3XZM/GMN / @komar --> #RD3XZM/0PL / 3677 дней назад

@komar это сделает плюсик blazingly fast за счёт нуля реаллокаций

но даже и без знания аппербаунда с неуёбищными (паскалевскими) строками конкатенация N строк в цикле = O(N), а не O(N²), этого уже более чем достаточно (ты не сделаешь быстрее)

#RD3XZM/9SO / @ulidtko --> #RD3XZM/4KK / 3677 дней назад
@ulidtko Палю: join()
#RD3XZM/OBS / @komar --> #RD3XZM/9SO / 3677 дней назад

@mugiseyebrows ето чувство когда мейнстримное дерьмо без third party library не умеет даже распечатать std::vector

#RD3XZM/ZJY / @ulidtko --> #RD3XZM/0PL / 3677 дней назад

@komar што join? сложность какая? +пруф что меньше O(N)

#RD3XZM/P1A / @ulidtko --> #RD3XZM/OBS / 3677 дней назад
@ulidtko палю std::ostream_iterator<int> out_it (std::cout,", "); std::copy ( myvector.begin(), myvector.end(), out_it );
#RD3XZM/OLP / @mugiseyebrows --> #RD3XZM/ZJY / 3677 дней назад
@ulidtko Академик, что ли?
#RD3XZM/NJJ / @komar --> #RD3XZM/P1A / 3677 дней назад

@mugiseyebrows хуита, чувак, хуита, не скейлится совсем нихуя

#RD3XZM/HXA / @ulidtko --> #RD3XZM/OLP / 3677 дней назад

@komar ты тупой как доска просто

#RD3XZM/MO7 / @ulidtko --> #RD3XZM/NJJ / 3677 дней назад
#RD3XZM/RBE / @mugiseyebrows --> #RD3XZM/HXA / 3677 дней назад
@ulidtko Я тебе ответил на вопрос, как сделать быстрее. Ты мне про сложность задвигаешь. Нахуя?
#RD3XZM/CIR / @komar --> #RD3XZM/MO7 / 3677 дней назад
@krkm лучше сделают concat.io - concat as a service
#RD3XZM/2OB / @mugiseyebrows --> #RD3XZM/0OX / 3677 дней назад

@mugiseyebrows вложенные данные ты как печатать будешь? что если у меня std::vector<company> и struct company { std::vector<Employee> hooey; ... } ?

#RD3XZM/GHT / @ulidtko --> #RD3XZM/RBE / 3677 дней назад
@mugiseyebrows вот это
#RD3XZM/0WP / @krkm --> #RD3XZM/2OB / 3677 дней назад
@ulidtko рекурсивно
#RD3XZM/OTD / @krkm --> #RD3XZM/GHT / 3677 дней назад

@komar быстрее алгоритмически блядь, в жабомифе O(N²) конкатенация строк через плюсик

про join заебись аргумент, но с паскалевкими строками плюсик в цикле настолько же хорошо прокатит

#RD3XZM/UV0 / @ulidtko --> #RD3XZM/CIR / 3677 дней назад
@ulidtko так нужно же просто `ostream& company::operator<<(ostream&)` определить и всё будет, не?
#RD3XZM/VLJ / @mugiseyebrows --> #RD3XZM/GHT / 3677 дней назад
@ulidtko Улиточка, в твоем академомирке, возможно, копипаста байта из одного куска памяти в другой имеет такую же СЛОЖНОСТЬ, какую и копипаста гигабайта, но я в университетах не учился, и что это за нолик в скобочках и перевернутая — не знаю. Зато я знаю, что если не выебываться и брать join, то будет быстро.
#RD3XZM/8LK / @komar --> #RD3XZM/UV0 / 3677 дней назад

@ulidtko твоя оценка сверху может оказаться слишком грубой, чтобы оптимизировать лишнюю аллокацию-две

#RD3XZM/9LH / @hirthwork --> #RD3XZM/2OO / 3677 дней назад
@komar пруф или ставить gem для конкатенации
#RD3XZM/522 / @krkm --> #RD3XZM/8LK / 3677 дней назад

@mugiseyebrows а для вектора, тьюплов и мапов где определять? с полной общностью это сука никуда не лезет, ни в каком файле неуместно, кроме MISC_PARASHA.cpp — а там уже дохуя

#RD3XZM/O4T / @ulidtko --> #RD3XZM/VLJ / 3677 дней назад
@krkm gem install спасает от чего угодно, только не от проблем с производительностью да кому она нахуй нужна, бабла на хероку закинул и норм
#RD3XZM/Y9P / @komar --> #RD3XZM/522 / 3677 дней назад

@hirthwork да join вон возьми и успокойся, посчитаешь всё заранее с точностью до байта

#RD3XZM/KJM / @ulidtko --> #RD3XZM/9LH / 3677 дней назад
@komar пруф или пиздюлей закинул академикам, пусть по науке ебашут пидоры
#RD3XZM/VSB / @krkm --> #RD3XZM/Y9P / 3677 дней назад

@krkm dae рыночная наука

#RD3XZM/KZC / @ulidtko --> #RD3XZM/VSB / 3677 дней назад
@krkm они на хуяскеле хуйни напишут и будет OOM еще на этапе компиляции нахуй они нужны
#RD3XZM/YHT / @komar --> #RD3XZM/VSB / 3677 дней назад

@komar :)

-O1 (вместо -O2) тогда хуле

#RD3XZM/AUR / @ulidtko --> #RD3XZM/YHT / 3677 дней назад
@ulidtko Рубисты обычно нанимают сишников. Они умеют не выебываться.
#RD3XZM/00I / @komar --> #RD3XZM/AUR / 3677 дней назад
@ulidtko бля ну а как должно быть-то, на уровне языка чтоле сереализация в жсон встроена и вообще хули ты там выводишь в поток, сереализуешь небось
#RD3XZM/WM9 / @mugiseyebrows --> #RD3XZM/O4T / 3677 дней назад

@komar

Они умеют не заебывать и жрать говно молча

починил

#RD3XZM/NGQ / @ulidtko --> #RD3XZM/00I / 3677 дней назад

@mugiseyebrows тьюпл в лог пишу // сорь

#RD3XZM/IS7 / @ulidtko --> #RD3XZM/WM9 / 3677 дней назад
@ulidtko сорь, папиры про сложность не пишут
#RD3XZM/XTE / @komar --> #RD3XZM/NGQ / 3677 дней назад
@ulidtko на рынке тебе бы давно в ебло двинули тварь
#RD3XZM/HVN / @krkm --> #RD3XZM/KZC / 3677 дней назад
@komar но... но наука
#RD3XZM/N64 / @krkm --> #RD3XZM/YHT / 3677 дней назад

@krkm что ті нєсешь, кому ето вігодно?

#RD3XZM/KV0 / @ulidtko --> #RD3XZM/HVN / 3677 дней назад
@ulidtko дваждую, пусть пританцовывают хотя бы
#RD3XZM/88O / @krkm --> #RD3XZM/NGQ / 3677 дней назад
@ulidtko у вас сало протекло, сорь
#RD3XZM/WUV / @krkm --> #RD3XZM/KV0 / 3677 дней назад

нашли что обсудить, блин. про преаллокацию большого буфера у StringBuilder я так скажу, тырпрайз пацаны потом делают new String(sb) чтобы шарить буфер StringBuilder, так что выделив большой буфер ты рискуешь сделать его долгоживущим

#RD3XZM/BL0 / @hirthwork / 3677 дней назад

@krkm сорь, я сегодня слить забыл просто (у твоей мамки выходной)

#RD3XZM/LY3 / @ulidtko --> #RD3XZM/WUV / 3677 дней назад
@ulidtko у моей мамки O(пизда)
#RD3XZM/MNQ / @krkm --> #RD3XZM/LY3 / 3677 дней назад

@krkm ^^^ я б поитерировал (безопасно)

#RD3XZM/W2C / @ulidtko --> #RD3XZM/MNQ / 3677 дней назад
@ulidtko фу ты мерзкий
#RD3XZM/IP1 / @krkm --> #RD3XZM/W2C / 3677 дней назад

@krkm :3

#RD3XZM/LK7 / @ulidtko --> #RD3XZM/IP1 / 3677 дней назад
@hirthwork ето вот, конкатенация делается точкой
#RD3XZM/ZLN / @anonymous --> #RD3XZM/GVV / 3677 дней назад
@ulidtko хуле ты там умных словечек начитался, аппербаунд блядь, ассимптотическая оценка сложности. совсем жсеры от рук отбились. расскажите мне про реализацию строк в вашем язычке. сколько реаллокаций на конкатенацию?
#RD3XZM/J1N / @krkm --> #RD3XZM/9SO / 3676 дней назад
Интересно, IntelliJ Idea уже долшла умом до того, чтобы реализовать это методом каких-то правил переписывания? (по типу хаскелевых) Насколько слышал, про null они давно умеют понимать (аннотации null'абл объект или нет). А вот про механизмы "переписывания" не слышал.
#RD3XZM/PAH / @kb / 3676 дней назад
@kb >рефакторинг
#RD3XZM/9MX / @anonymous --> #RD3XZM/PAH / 3676 дней назад
@polecat еще один, блядь
#RD3XZM/DYX / @komar --> #RD3XZM/1TL / 3676 дней назад
@polecat всем насрать
#RD3XZM/QCM / @komar --> #RD3XZM/743 / 3676 дней назад
@polecat ни хуя он не подпердоливает, я скомпилял раскомпилял и перфоманс посчитал 6мс против 600мс и посоны на стеке тоже самое говорят, компиляч переписывает только элементарщину вроде` String a,b,c; <...> c = a+b;`
#RD3XZM/1TI / @mugiseyebrows --> #RD3XZM/1TL / 3676 дней назад
@mugiseyebrows отсос абстракций в жаве короч
#RD3XZM/X48 / @mugiseyebrows --> #RD3XZM/1TI / 3676 дней назад
@anonymous что "рефакторинг"?
#RD3XZM/NEX / @kb --> #RD3XZM/9MX / 3675 дней назад
@kb то, что ты понаписал, называется "рефакторинг"
#RD3XZM/X92 / @anonymous --> #RD3XZM/NEX / 3675 дней назад
@anonymous Ты не понял. Я хочу, чтоб форма `sb.append(obj)` переписывалась в `sb.append(obj.toString())` компилятором, а не программистом при помощи кнопочки "рефакторинг".
#RD3XZM/YKJ / @kb --> #RD3XZM/X92 / 3675 дней назад
@kb Переходи на Haskell.
#RD3XZM/53T / @l29ah --> #RD3XZM/YKJ / 3675 дней назад
@l29ah Да
#RD3XZM/89H / @kb --> #RD3XZM/53T / 3675 дней назад
@l29ah У тебя там крылатый оптимизатор?
#RD3XZM/1Q6 / @komar --> #RD3XZM/53T / 3675 дней назад
@komar У меня там rewrite rules.
#RD3XZM/ZJP / @l29ah --> #RD3XZM/1Q6 / 3675 дней назад
ipv6 ready BnW для ведрофона BnW на Реформале Викивач Котятки

Цоперайт © 2010-2016 @stiletto.