 |
|

07.02.2016, 04:04
|
|
Постоянный
Регистрация: 22.06.2015
Сообщений: 766
С нами:
5732336
Репутация:
0
|
|
Сообщение от gattsu
здесь был smeli и отсыпал травки.
Только что подумал, если бы ваш код пихнули в книгу "совершенный код", начал ржать как гиена, в слух. Эталон...
Для кода на скорость любой java-код не эталон - и твой в том числе. Не веришь? Можешь написать свои рассуждения о конкатенции строк на форуме сишников - я посмеюсь вместе с ними.
Когда же я обращаю внимание на конкретное решение задачи в 1 посте, то почему-то задача уже не считается?
Ты уже определись для себя, либо общие решения скорости выполнения, либо решение конкретной задачи.
|
|
|

07.02.2016, 04:09
|
|
Участник форума
Регистрация: 03.02.2016
Сообщений: 148
С нами:
5407316
Репутация:
0
|
|
Сообщение от Visor123
Для кода на скорость любой java-код не эталон - и твой в том числе. Не веришь? Можешь написать свои рассуждения о конкатенции строк на форуме сишников - я посмеюсь вместе с ними.
Вот только речь у нас тут а джава коде, а не о Си и ассемблере.
И да, я уже намекал о том, что Вы не способны реализовать это на ассемблере внутри Вашего злополучного класса, поэтому хватит оперировать этим.
Мы говорим о двух случаях - с конкатенацией и без.
|
|
|

07.02.2016, 04:11
|
|
Постоянный
Регистрация: 22.06.2015
Сообщений: 766
С нами:
5732336
Репутация:
0
|
|
То есть когда я говорю о конкретном коде в 1 посте, мне пишут про 100000 итераций, когда я пишу о 100000 итераций, что быстрее когда их нет - то сразу съезд на код в 1 посте.
Определитесь господа, о чем конкретно вы пишете, и где 100000 итераций конкатенции, которые вы оптимизируете.
Сообщение от velafrys
Вот только речь у нас тут а джава коде, а не о Си и ассемблере.
И да, я уже намекал о том, что Вы не способны реализовать это на ассемблере внутри Вашего злополучного класса, поэтому хватит оперировать этим.
Мы говорим о двух случаях - с конкатенацией и без.
Речь у нас либо о частном решении, то есть мы имеем в цикле 0-1 итерацию - расскажи, что ты в ней будешь оптимизирвоать, или ты будет оптимизировать конкатенцию строк в каждой строке отдельно?
Ассемблер не в этой классе, класс тут вообще не при чем, если рассуждать о том, что быстрее вообще. А когда в частном случае 1 поста и 0 итераций - то все твои велосипеды ни к чему вообще.
И есть еще случай, когда конкатенции не будет вообще, даже горизонтальной - можно просто поднять файл и реплейснуть там участки ключевых слов. И что ты там тогда писал про конкатенцию которой нет...
|
|
|

07.02.2016, 04:13
|
|
Участник форума
Регистрация: 03.02.2016
Сообщений: 148
С нами:
5407316
Репутация:
0
|
|
Мы говорим о плохом подходе решения задачи.
"Конкатенация В ТОМ ВИДЕ В КОТОРОМ ОНА ЕСТЬ СЕЙЧАС У КЛАССА STRING В ЦИКЛЕ, КАКИМ БЫ ОН НИ БЫЛ,хуже, чем использование StreamBuilder", вот и все. Любой человек, который работает в команде согласится со мной, т.к. он уважает других разработчиков.
|
|
|

07.02.2016, 04:20
|
|
Постоянный
Регистрация: 22.06.2015
Сообщений: 766
С нами:
5732336
Репутация:
0
|
|
Сообщение от velafrys
Мы говорим о плохом подходе решения задачи.
"Конкатенация В ТОМ ВИДЕ В КОТОРОМ ОНА ЕСТЬ СЕЙЧАС У КЛАССА STRING В ЦИКЛЕ, КАКИМ БЫ ОН НИ БЫЛ,хуже, чем использование StreamBuilder", вот и все. Любой человек, который работает в команде согласится со мной, т.к. он уважает других разработчиков.
Любой человек согласится со мной, что то что ты написал, это очевидно.
Но твой пример не подходит к решению в 1 посте, там в цикле будет от 0 до 1. Перепиши свой цикл так, чтобы поменять там число 100000 0, потом на 1 и расскажи нужно ли там придумывать велосипед или нет.
Любой человек тут согласится со мной, что если цикл конкатенции будет от 0 до 0, то в примере что билдер, что стринг будут работать с одинаковой скоростью. Или это не очевидно?
Я же предлагаю решение, когда не будет вообще цикла и конкатенции - это самый быстрый вариант, которого у тебя нет в примере, но для решения задачи он может вполне быть. И это тоже очевидно.
И как ты вообще можешь говорить о задаче, если ты ее не знаешь?
|
|
|

07.02.2016, 04:25
|
|
Участник форума
Регистрация: 03.02.2016
Сообщений: 148
С нами:
5407316
Репутация:
0
|
|
Когда говорю о подходе и качестве кода, Вы переводите стрелки на эффективность)
Меня крайне утомило это действо. Вы даже не можете закончить диалог, не оставив за собой слово.
Настоятельно рекомендую прочесть и изучить достойную литературу, а-ля банда четырех и того же Макконнелла, может быть это ещё не поздно в Вашем случае.
|
|
|

07.02.2016, 04:30
|
|
Постоянный
Регистрация: 22.06.2015
Сообщений: 766
С нами:
5732336
Репутация:
0
|
|
Сообщение от velafrys
Когда говорю о подходе и качестве кода, Вы переводите стрелки на эффективность)
Меня крайне утомило это действо. Вы даже не можете закончить диалог, не оставив за собой слово.
Настоятельно рекомендую прочесть и изучить достойную литературу, а-ля банда четырех и того же Макконнелла, может быть это ещё не поздно в Вашем случае.
Я не перевожу стрелки на эффективность, чел же выкинул в 1 посте конкретный код, а не абстракцию, в которой может быть много итераций цикла, если бы там было много итераций цикла, я бы сразу поставил еще один билдер. Это очевидно. Я не пойму, почему ты не хочешь понять простые вещи, а упираешься в какие-то циклы с 100000 итераций конкатенции - нет там такого и быть не может в предметной области.
Для того, чтобы увидеть конкретный код в 1 посте тебе, мне не нужно читать литературу. Там прямо в коде возможны варианты либо 0 либо 1, стоит там городить велосипед для выигрывания пары наносекунд? Городи, я считаю что для решения задачи этого не нужно.
Почитай литературу сам, там люди же не глупые пишут, что полезно делать, а что не очень.
Когда я говорю про абстракции, ты съезжаешь на код в 1 посте. Так ты определись о чем ты пишешь о своем примере или о решении в 1 посте - именно решении, а не абстракции. Клоун его взял не абстрактно, а из конкретного проекта, и класс сделан именно для решения конкретной задачи, а не оптимизирован под решение множества задач.
|
|
|

07.02.2016, 04:31
|
|
Участник форума
Регистрация: 24.11.2015
Сообщений: 165
С нами:
5509192
Репутация:
1457
|
|
Сообщение от Visor123
Любой человек согласится со мной, что то что ты написал, это очевидно.
Но твой пример не подходит к решению в 1 посте, там в цикле будет от 0 до 1. Перепиши свой цикл так, чтобы поменять там число 100000 0, потом на 1 и расскажи нужно ли там придумывать велосипед или нет.
Любой человек тут согласится со мной, что если цикл конкатенции будет от 0 до 0, то в примере что билдер, что стринг будут работать с одинаковой скоростью. Или это не очевидно?
Мертвый код это просто супер.... Ваше ПО нельзя детерминировать, нарушается машина Тьюринга. У Вас квантовый компьютер?
|
|
|

07.02.2016, 04:36
|
|
Постоянный
Регистрация: 22.06.2015
Сообщений: 766
С нами:
5732336
Репутация:
0
|
|
Сообщение от gattsu
Мертвый код это просто супер.... Ваше ПО нельзя детерминировать, нарушается машина Тьюринга. У Вас квантовый компьютер?
Если класс не использовался в 2012 году в том паке, откуда клоун взял код, то это не значить что он не используется на конкретных инстансах серверов. Если эвент подключен - то он используется, а нет, то не используется - это очевидно.
Мое ПО не хуже других ПО, сервер имеет модульность, что-то подключено, а что-то нет. В любом сервере л2 в комплекте идут эвенты, но это не значить что все они используются. Это очевидно и это тут может любой подтвердить.
Но в том паке нет эвентов этого типа.
Сообщение от gattsu
Мертвый код это просто супер.... Ваше ПО нельзя детерминировать, нарушается машина Тьюринга. У Вас квантовый компьютер?
Я и пытаюсь достучаться, что конкретно этот класс, что приведен в 1 посте "заточен" под конкретный тип задач с крайне малым количеством вызовов.
Конечно можно кричать, что это говнокод в общем исполнении при большом кол-ве итераций цикла, но класс написан решить частный случай, где кол-во выполнения цикла настолько мало и настолько редко выполняется - что оптимизация его дело конечно благородное, но это никому не нужный велосипед для этой конкретной имплементации.
А теперь, как я и обещал - я показываю вам эту тему.
Вас очень легко сагрил обычный выродок, скурпулезно создав о себе мнение эксперта, на совершенно незнакомого человека вкинув типичную задачку, которую вы уже проходили. Правда в книге по шаблонам программирования вам не написали, как вам уберечься от манипулирования.
Человек, который не может сформулировать свою мысль ("с точки зрения написания") вдруг вкидывает ни с того ни с сего агро-кусок на кого-то. Естественно мои намеки никак не подействовали - вы попали в "типичную колею" и додумали остальное сами, а чувак просто сидит и улыбается, ведь ему ничего не пришлось делать - вы сами, создав поток глупости, ринулись в атаку.
Можете полюбоваться на название темы и на свою реакцию в ней. Были еще и те, кто понимает код и ситуацию и не написал ничего - я вас тоже поздравляю - хорошая выдержка. Были те, кто интуитивно ничего не написал, ощущая чувство манипуляции. И были те кто ничего не понял и не написал.
Вот конструкция, которая позволяет легко агрить тру-программеров на других людей. Я ее привожу для тех, кто не вникал в подробности.
Код:
Код:
String b = "b";
StringBuilder sb = new StringBuilder();
sb.append("a"+b);
Она при компиляции преобразуется в конструкцию
Код:
Код:
String b = "b";
StringBuilder sb = new StringBuilder();
sb.append((new StringBuilder()).append("a").append(b).toString());
Я хотел сразу разложить все по полочкам, но готовый ответ сразу был бы не очевиден - нужен конкретный пример.
Эта тема - это и есть пример: вы были участниками типичного использования умных людей на простом шаблоне программирования.
Оказалось, что сделать это проще, чем многие думают и это работает.
Запомните этот навык и это чувство, когда вас втянули в ненужную для вас ситуацию.
Вывод: есть люди умнее или такие-же как вы, есть люди глупее вас, а есть люди, которые будут вас использовать.
Я ничего не придумал, просто показал это все в "объеме" с нетипичной для вас точки зрения и постарался "разложить по полочкам" общий сценарий.
Администрацию прошу закрыть тему, чтобы ключевое пояснение примера не закидали сообщениями и мое время не пропало зря. Спасибо за внимание.
|
|
|

07.02.2016, 14:29
|
|
Участник форума
Регистрация: 24.11.2015
Сообщений: 165
С нами:
5509192
Репутация:
1457
|
|
Сообщение от Visor123
Код:
Код:
String b = "b";
StringBuilder sb = new StringBuilder();
sb.append("a"+b);
серьезно, вместео sb.append("a").append(b) делать sb.append("a" + b) зачем
У Вас, что код как пророк Мохамед, его никто не должен читать, святой.
Тот код который в первом посте, является грязным, и в продакшн такое пускать нельзя.
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|