|
Что не так с Java String и как вы с этим боретесь?
|
|||
---|---|---|---|
#18+
На хабре была статья, что уже работает автоматическая оптимизация такого говнокода -> стрингбилдер. А т.тролля предлагаю забанировать. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.09.2018, 21:42 |
|
Что не так с Java String и как вы с этим боретесь?
|
|||
---|---|---|---|
#18+
кстати на счет говнокода, считаю - тут тоже надо без фанатизма и экономии на спичках. Вариант конкатенации в цикле - да, плохо (возможность оптимизации вынесем за скобки), а вот варианты типа Код: java 1.
или даже Код: java 1. 2. 3. 4. 5. 6.
ничего страшного не произойдет в 99.9% случаев для 99.9% нетленок. Городить ради такого StringBuilder или String.format - только читаемость понижать ... |
|||
:
Нравится:
Не нравится:
|
|||
18.09.2018, 22:07 |
|
Что не так с Java String и как вы с этим боретесь?
|
|||
---|---|---|---|
#18+
Siemargl, это вы тролль, к тому же невежественный на 100%. Ничего по теме сказать неспособный. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.09.2018, 22:17 |
|
Что не так с Java String и как вы с этим боретесь?
|
|||
---|---|---|---|
#18+
chpasha, Старый Язык. В дНете и Д есть мультилайн стринги. Возможно, формат() стоит того, конечно по сравнению с сиквелзапросом накладные копейки, а вот при логгинге уже не факт. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.09.2018, 22:20 |
|
Что не так с Java String и как вы с этим боретесь?
|
|||
---|---|---|---|
#18+
chpasha, ничего страшного не произойдет в 99.9% случаев для 99.9% нетленок Вроде и так ничего смотрится: Код: java 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
18.09.2018, 22:32 |
|
Что не так с Java String и как вы с этим боретесь?
|
|||
---|---|---|---|
#18+
Eugene NewЯ тут сейчас прочитал про новый алгоритм выделения памяти в Java 2017 года - вообще отказаться от сборки мусора и просто ронять программу когда память заканчивается Есть неплохая лекция Елизарова на тему сборок мусора. Там он рассказывает про Shennandoh (не помню как правильно писать) но походу прошелся по всем концепциям которые есть в науке и технике. Их кстати не очнеь много. Проблема которую ты вытащил в топик - гипертрофированая. Тоесть она существует но она не главная. Проблема есть для объектов которые переживают 1 эпоху жизни в Eden и путешествуют в suprival, и permgen. Твои объекты-строки хотя и флудят но будут убраны очень быстро за милисекунды. Performance issue они не создают. Вообще в крупном java-приложении аллокации памяти происходят постоянно и непрерывным потоком. Это нормальный flow. Тоесть выносить этот игрушечный цикл как проблему не стоит т.к. проблемы на самом деле нет. Это учебный пример который просто показывают новичкам чтобы рассказать что такое вообще Java-memory. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.09.2018, 09:00 |
|
Что не так с Java String и как вы с этим боретесь?
|
|||
---|---|---|---|
#18+
[quot mayton]Eugene New... Проблема которую ты вытащил в топик - гипертрофированая. Тоесть она существует но она не главная. Проблема есть для объектов которые переживают 1 эпоху жизни в Eden и путешествуют в suprival, и permgen. Твои объекты-строки хотя и флудят но будут убраны очень быстро за милисекунды. Performance issue они не создают. Вообще в крупном java-приложении аллокации памяти происходят постоянно и непрерывным потоком. Это нормальный flow. Тоесть выносить этот игрушечный цикл как проблему не стоит т.к. проблемы на самом деле нет. Это учебный пример который просто показывают новичкам чтобы рассказать что такое вообще Java-memory. Ну, на 95% как бы примерно так и есть. Но на 5 копеек я бы уточнил. maytonчтобы рассказать что такое вообще Java-memory. и показать, что программирование всегда происходит в рамках и с учётом особенностей "машины", чтобы это не значило. Здесь она, в части управления памятью, вот такая. И это ведет к определенной манере работы с этой машиной. maytonPerformance issue они не создают Это вопрос, сильно связанный со способом разглядывать мир. Цикл жизни объекта состоит из его создания, использования и уничтожения. Уничтожение - не твое дело, оно не дано тебе в непосредственное управление и, в широком диапазоне историй, вообще не должно привлекать твое внимание как вопрос "Performance issue". Остается создание и использование. Если обсуждаемый цикл сидит в конструкторе некоего "очень долго создаваемого объекта", но который потом живет длительное время и быстро реагирует на многочисленные запросы к себе, то здесь тоже нет "Performance issue" - время создания такого объекта будет целиком амортизировано за время его жизни. А если такой цикл сидит в методе, отвечающем на клиентский запрос к этому объекту, то он может целиком определить время реакции на запрос и превратиться именно "Performance issue". Тогда происходит возвращение к пункту 1 - программировать надо с учетом особенностей работы конкретной "машины". ИМХО, самый тонкий момент состоит в том, как и когда ставить точку в "учете особенностей". Но этот вопрос - "для старших курсов". ... |
|||
:
Нравится:
Не нравится:
|
|||
19.09.2018, 11:15 |
|
Что не так с Java String и как вы с этим боретесь?
|
|||
---|---|---|---|
#18+
Современная кибернетика создала искусственные комфортные условия разработки и использования ПО. Оградив нас от segmentation fault мы заплатили налог. Мы платим его постоянно и везде. Это посторонние активности в браузере. Работа антивируса. И разные прочие активности операционных систем и сред и приложений и баз данных. Тысячи их. Фиксить их невозможно по экономическим законам да никто и не хочет. Вопрос цены этого налога - это открытый вопрос. Как его посчитать? Как его пофиксить? И какой ценой? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.09.2018, 11:29 |
|
Что не так с Java String и как вы с этим боретесь?
|
|||
---|---|---|---|
#18+
maytonСовременная кибернетика ... Вот буквально вчера я глубоко сожалел, что это слово вообще реабилитировали. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.09.2018, 11:38 |
|
Что не так с Java String и как вы с этим боретесь?
|
|||
---|---|---|---|
#18+
Siemarglа вот при логгинге уже не факт я потому логгинг и не привел в качестве примера, кроме того все адекватные логгеры поддерживают в том или ином виде форматирование сами, там нет острой нужды ни в конкатенации ни в String.format Eugene NewВроде и так ничего смотрится возможно дело вкуса. я бы предпочел первый вариант - не вижу резона городить огород. кроме того нужно смотреть будет ли работать в таком случае автоподсказка. в первом случае я точно знаю, что будет ... |
|||
:
Нравится:
Не нравится:
|
|||
19.09.2018, 12:05 |
|
Что не так с Java String и как вы с этим боретесь?
|
|||
---|---|---|---|
#18+
chpashaя точно знаю, что будет правда не во всех IDE ... |
|||
:
Нравится:
Не нравится:
|
|||
19.09.2018, 12:06 |
|
Что не так с Java String и как вы с этим боретесь?
|
|||
---|---|---|---|
#18+
boobymaytonСовременная кибернетика ... Вот буквально вчера я глубоко сожалел, что это слово вообще реабилитировали. Это Усов меня заразил. ЭВМ... кибернетика. решения XXV съезда партии... ... |
|||
:
Нравится:
Не нравится:
|
|||
19.09.2018, 12:39 |
|
Что не так с Java String и как вы с этим боретесь?
|
|||
---|---|---|---|
#18+
Eugene NewЯ тут сейчас прочитал про новый алгоритм выделения памяти в Java 2017 года - вообще отказаться от сборки мусора и просто ронять программу когда память заканчивается "Слышал звон, да не знаю, где он" http://openjdk.java.net/jeps/318 Epsilon GC это не новый "подход", это просто еще 1 сборщик мусора. И в jep даже перечислено для чего это может быть полезно. There are a few use cases where a trivial no-op GC proves useful: Performance testing. Memory pressure testing. VM interface testing. etc. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.09.2018, 12:55 |
|
Что не так с Java String и как вы с этим боретесь?
|
|||
---|---|---|---|
#18+
Современная кибернетика создала искусственные комфортные условия разработки и использования ПО. 1) Вся т. н. современная кибернетика основана на идеях 20-50 летней давности 2) По сравнению со средствами 10-20 летней давности сделано хуже, неудобнее, некомфортнее. 3) Заморочки со строками и невозможность использовать встроенные оператор + - это неудобство. Удобным была бы реализация встроенного типа-строки, который бы работал так же, как атомарные типы вроде целых и не требовал бы думать о заморочках. Такое делалось в языках 1980-х годов. Не могут - не надо делать + со строками, не вводить в заблуждение. 4) Уверенность в том, что все обязаны жрать, что ни дают - раздражает. И в jep даже перечислено для чего это может быть полезно. Не только то, что вы сказали. Еще и: - Extremely short lived jobs - Last-drop latency improvements - Last-drop throughput improvements То есть для вполне таки рабочих программ. Прорыв 21 века! Программа работает пока не исчерпает всю память, потом просто падает! Разработчики довольны собой, считают что все ок! Ну а что - сожрут и так. Не могут наладить работу сборщика без пауз - давайте его вообще отключим. Современная кибернетика Осталось только разрешить ручное управление памятью, чтобы вернуться к тому, с чего начали. Вручную то получше будет. Ну будут утечки может быть, но хуже заранее определенной постоянной утечки уже быть не может. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.09.2018, 17:06 |
|
Что не так с Java String и как вы с этим боретесь?
|
|||
---|---|---|---|
#18+
Eugene NewПо сравнению со средствами 10-20 летней давности сделано хуже, неудобнее, некомфортнее. Да, так и есть и дальше так будет. Вы хотя бы на секунду подумайте о том, куда деть программистов, когда они напишут все, что нужно - одну идеальную ОС, один идеальный браузер, один идеальный почтовый сервер и так далее. Так что и дальше будет прогресс в виде стремительно устаревающих знаний и технологий и переизобретения по 10-20 кругу старого и забытого под видом нового. Знаете, почему в армии копают траншею "от забора и до обеда"? Потому что принцип "мне не нужно, чтобы ты сделал, мне нужно, чтобы ты задолбался" воспитывает нужное подчинение, которое позволит в бою по команде офицера подняться солдатикам и побежать навстречу верной смерти в виде пулеметной очереди. Смысл - умение подчиняться. Не нужно умничать, берите свои IDE и пилите код, "солнце еще высоко" (с) Вам не нравится - никто Вас лично в IT не держит, наймитесь в Макдональдс, от Ваших выкриков с надрывом "эх, ребята, все не так, все не так, как надо" в стиле Владимира Семеновича - не поменяется ничего. Все было так, как должно быть, и дальше так будет. Уясните себе это раз и навсегда. И никто не позволит ребятам, которые курируют развитие Java, что-либо поменять. Нам нужно отсутствие нормальной верификации байт-кода в виртуальной машине. И это останется так навсегда. Нас не очень интересует, что думают по этому вопросу разработчики, как и по многим другим вопросам. Можете написать жалобу, я готов лично переслать ее Ларри со своими комментариями. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.09.2018, 17:20 |
|
Что не так с Java String и как вы с этим боретесь?
|
|||
---|---|---|---|
#18+
Eugene New, всё правильно, вот только надо учесть что всё это создавалось путем выбора меньшего зла. ты смотришь со своей колокольни , но она намного меньше колокольни разработчиков, поэтому для того чтоб ругать что-то глобальное надо подняться на более высокую колокольню и уже от туда глаголить ... |
|||
:
Нравится:
Не нравится:
|
|||
19.09.2018, 17:24 |
|
Что не так с Java String и как вы с этим боретесь?
|
|||
---|---|---|---|
#18+
Eugene NewСовременная кибернетика создала искусственные комфортные условия разработки и использования ПО. 1) Вся т. н. современная кибернетика основана на идеях 20-50 летней давности 2) По сравнению со средствами 10-20 летней давности сделано хуже, неудобнее, некомфортнее. 3) Заморочки со строками и невозможность использовать встроенные оператор + - это неудобство. Удобным была бы реализация встроенного типа-строки, который бы работал так же, как атомарные типы вроде целых и не требовал бы думать о заморочках. Такое делалось в языках 1980-х годов. Не могут - не надо делать + со строками, не вводить в заблужденит. Сколько лет вы программируете? И на каких языках и технологиях? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.09.2018, 17:27 |
|
Что не так с Java String и как вы с этим боретесь?
|
|||
---|---|---|---|
#18+
Eugene NewСовременная кибернетика создала искусственные комфортные условия разработки и использования ПО. 1) Вся т. н. современная кибернетика основана на идеях 20-50 летней давности 2) По сравнению со средствами 10-20 летней давности сделано хуже, неудобнее, некомфортнее. 3) Заморочки со строками и невозможность использовать встроенные оператор + - это неудобство. Удобным была бы реализация встроенного типа-строки, который бы работал так же, как атомарные типы вроде целых и не требовал бы думать о заморочках. Такое делалось в языках 1980-х годов. Не могут - не надо делать + со строками, не вводить в заблуждение. 4) Уверенность в том, что все обязаны жрать, что ни дают - раздражает. И в jep даже перечислено для чего это может быть полезно. Не только то, что вы сказали. Еще и: - Extremely short lived jobs - Last-drop latency improvements - Last-drop throughput improvements То есть для вполне таки рабочих программ. Прорыв 21 века! Программа работает пока не исчерпает всю память, потом просто падает! Разработчики довольны собой, считают что все ок! Ну а что - сожрут и так. Не могут наладить работу сборщика без пауз - давайте его вообще отключим. Современная кибернетика Осталось только разрешить ручное управление памятью, чтобы вернуться к тому, с чего начали. Вручную то получше будет. Ну будут утечки может быть, но хуже заранее определенной постоянной утечки уже быть не может. Если хочется сборщика мусора без пауз (а точнее с небольшими паузами) - есть ZGC, Shenandoah и C4 (от Zulu) ... |
|||
:
Нравится:
Не нравится:
|
|||
19.09.2018, 17:27 |
|
Что не так с Java String и как вы с этим боретесь?
|
|||
---|---|---|---|
#18+
Eugene New2) По сравнению со средствами 10-20 летней давности сделано хуже, неудобнее, некомфортнее.Неудобнее? Некомфортнее?? Что за ересь! 20 лет назад для организации межплатформенного взаимодействия приходилось дикие танцы с бубнами устраивать, придумывать протоколы или какую-нибудь CORBA городить. Сейчас за 5 минут любая современная IDE сожрет WSDL, нагенерит определений типов и шли что угодно куда угодно, с управляемым качеством сервиса, любыми фичами шифрования. Жалующихся, что прогресса нет, программировать ЕС1045 посадить бы на месяц. Даже без хардкора вроде перфокарт, с терминальным доступом через какую-нибудь СВМ ... |
|||
:
Нравится:
Не нравится:
|
|||
19.09.2018, 18:34 |
|
Что не так с Java String и как вы с этим боретесь?
|
|||
---|---|---|---|
#18+
Andy_OLAP, Все было так, как должно быть, и дальше так будет. Уясните себе это раз и навсегда. Это вы от лица разработчиков Java говорите? Что же они бояться это заявить от своего имени и используют всяких анонимов для этого? почему в армии копают траншею "от забора и до обеда"? Как то я не ощущаю себя солдатом. Если уж приводить аналогии - то с офицером, который в офицерском клубе с другими офицерами и генералами почти на равных общается. Если хотите реальных исторических примеров, почитайте про попытку общения великого и ужасного Берии с физиком Капицей в таком тоне, что Капица ему ответил и чем это в итоге закончилось для обоих. Вам не нравится - никто Вас лично в IT не держит, наймитесь в Макдональдс, от Ваших выкриков с надрывом "эх, ребята, все не так, все не так, как надо" Вы себя маршалом IT вообразили, а всех остальных духами, которым вы приказы раздаете? Детский сад. Блин, даже боюсь разрушать ваши иллюзии, вдруг это вам нанесет душевную травму. Все таки скажу - что и как мне делать разберусь сам. А вы так не можете разговаривать даже с сотрудниками, которым платите зарплату, будь у вас такие, в чем я сомневаюсь. Неверный вы тон выбрали для разговора.. Вам не удастся ни зафлудить тему, ни вывести меня из себя. "мне не нужно, чтобы ты сделал, мне нужно, чтобы ты задолбался" Ну пусть напишут этот девиз на своем официальном сайте, а не используют для этого анонимов и не рассказывают про 'удобства'. Вы определитесь - вы программист или представитель компании. Может в самой компании то по головке за такую агитацию не погладят. Зашедший, приходилось дикие танцы с бубнами устраивать, придумывать протоколы или какую-нибудь CORBA городить. Ок, замечу только, что были и веб-сервера, и http-запросы к ним, и текстовые файлики слать было можно. программировать ЕС1045 посадить бы на месяц Не застал. Это вы слишком далеко в прошлое заглядываете, я не такой срок называл. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.09.2018, 19:14 |
|
Что не так с Java String и как вы с этим боретесь?
|
|||
---|---|---|---|
#18+
Если хочется сборщика мусора без пауз (а точнее с небольшими паузами) - есть ZGC, Shenandoah и C4 (от Zulu) Спасибо за конкретную информацию. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.09.2018, 19:20 |
|
Что не так с Java String и как вы с этим боретесь?
|
|||
---|---|---|---|
#18+
Eugene NewЗашедший, приходилось дикие танцы с бубнами устраивать, придумывать протоколы или какую-нибудь CORBA городить. Ок, замечу только, что были и веб-сервера, и http-запросы к ним, и текстовые файлики слать было можно.Можно. То есть написать собственные парсеры, маршаллинг-демаршаллинг, конверторы форматов дат/времени, добавить обработчики исключительных ситуаций... Это и есть изобретение велосипеда собственного протокола, о котором я сказал. Сейчас любой (почти) объект в любом (почти) языке автоматом маршаллится в SOAP со всеми иерархическими вложениями, генерациями стабов и оберток. Eugene New программировать ЕС1045 посадить бы на месяцНе застал. Это вы слишком далеко в прошлое заглядываете, я не такой срок называл.В 90-х на территории нашей необъятной была масса мест, где работали эти прекрасные орудия пытки программистов. В одном подмосковном военном городке "секретные" ЕС-ки заменили на нормальные серверы только в начале нулевых. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.09.2018, 20:09 |
|
Что не так с Java String и как вы с этим боретесь?
|
|||
---|---|---|---|
#18+
Зашедший...В 90-х на территории нашей необъятной была масса мест, где работали эти прекрасные орудия пытки программистов. В одном подмосковном военном городке "секретные" ЕС-ки заменили на нормальные серверы только в начале нулевых.А что такое нормальный сервер в этом контексте? А то каждые 5 лет мода меняется с тех времен и до сих пор. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.09.2018, 20:22 |
|
Что не так с Java String и как вы с этим боретесь?
|
|||
---|---|---|---|
#18+
SiemarglЗашедший...В 90-х на территории нашей необъятной была масса мест, где работали эти прекрасные орудия пытки программистов. В одном подмосковном военном городке "секретные" ЕС-ки заменили на нормальные серверы только в начале нулевых.А что такое нормальный сервер в этом контексте?Поддерживающий *nix, gcc и прочий стандарт. В ЕС-ках были свои самобытные операционки, частично тыренные с IBM, частично допиленные во всяких НИИ с набором не менее самобытных приблуд с кучей багов. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.09.2018, 21:37 |
|
|
start [/forum/topic.php?fid=59&msg=39705263&tid=2121729]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
71ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
60ms |
get tp. blocked users: |
1ms |
others: | 14ms |
total: | 186ms |
0 / 0 |