powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Что не так с Java String и как вы с этим боретесь?
25 сообщений из 293, страница 6 из 12
Что не так с Java String и как вы с этим боретесь?
    #39706018
Eugene New
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lleming,
больше с точки зрения надержности, скорости, легкости расширения.
Либо дремучий дилетантизм, либо желание все как можно больше запутать. Т. к. эффект - ненадежность, медленность, сложность.

Видимо там нечего оптимизировать поэтому и не делал попыток.

Вот это вы пошутили. Судя по тому, какие открытия они начали совершать в 2017 году, даже элементарные вещи по перетряхиванию их архитектуры могут принести ощутимый эффект. Но они до этого еще не дошли. Видно, им надо еще 10 лет.

Если в цикле создавать новый буфер и загонять туда число чем от приведенного примера отличается ?

Тем, что он создается явно и это хотя бы видно в коде. А в Java создается иллюзия удобства и прозрачности, которые Java на самом деле не обеспечивает.

можно предсказать это простая логика, если чтото не тратить то это не закончится.
Нужно это разжевывать? Речь идет о Java, в которой вообще нет статических переменных, в которой на каждый чих создаются объекты в куче. Вы не можете обеспечить того, что память не будет тратится. Вы можете только махнуть рукой - и так мол сойдет.
Если я не прав, объясните, как вы будете гарантировать отсутствие выделений объектов в куче.

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

Как вариант для особо типа приложений jvm рестартовать до того как закончится память.
А лучше вообще не запускать. Тогда точно не закончится.
Хотя ведь всегда можно сказать, что пользователь идиот и нищеброд, который не захотел лишних 20 гигов оперативки ставить - и поэтому программа падает не раз в день, а раз в час.
...
Рейтинг: 0 / 0
Что не так с Java String и как вы с этим боретесь?
    #39706020
Eugene New
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Огласили результат что наоборот стало сильно быстрее и меньше тратить памяти.

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

Надо хотя бы полные условия тестирования и методику тестов оглашать. Чтобы это было проверяемым со стороны.
...
Рейтинг: 0 / 0
Что не так с Java String и как вы с этим боретесь?
    #39706051
lleming
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Eugene NewОгласили результат что наоборот стало сильно быстрее и меньше тратить памяти.

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

Надо хотя бы полные условия тестирования и методику тестов оглашать. Чтобы это было провряемым со стороны.

Ну так в чем проблема посмотри проверь опровергни. Под огласили имеется ввиду не просто ктото сказал на ютубе а сделал тесты и огласил результаты (не сложно было догадаться).
...
Рейтинг: 0 / 0
Что не так с Java String и как вы с этим боретесь?
    #39706063
pand
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Eugene Newlleming,
Видимо там нечего оптимизировать поэтому и не делал попыток.

Вот это вы пошутили. Судя по тому, какие открытия они начали совершать в 2017 году, даже элементарные вещи по перетряхиванию их архитектуры могут принести ощутимый эффект. Но они до этого еще не дошли. Видно, им надо еще 10 лет.


Вы так яростно критикуете разработчиков новомодных IDE . Судя по Вашим постам у Вас есть достаточно опыта в разработке и оптимищации сложных систем. Чтобы проникнуться вашими идеями не могли бы Вы привести примеры какие проекты Вы реализовывали.
...
Рейтинг: 0 / 0
Что не так с Java String и как вы с этим боретесь?
    #39706067
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну преобразование из одной кодовой системы в другую - требуется только в момент ввода-вывода. Ну и преобразование при вводе-выводе, сейчас все равно требуется.

В процессе работы, думаю hash, equils самые частые методы. Сортировка - сейчас и так досаточно сложная задача (т.к. должна поддерживать локализацию), тут уже ничего не усложнится.

В общем, насколько мешанина UTF-8 / UTF-16 будет эффективной, насколько не эффективной - могут сказать только тесты. На мой взгляд, для 95 % реальных приложений, UTF-8 более эффективно. Уменьшаем занимаемую память, данные компактнее, кэши и шины процессора работают эффективнее.

Все упирается, насколько это криво реализуют. Сейчас encode / decode между кодовыми страницами - безумно криво сделано. Если хаки и оптимизации на уровне JVM не срабатывают - то и безумно тормознуто.

Все тормоза при encode, decode строк исключительно из-за закрытости класса String, CharBuffer и бесмысленных копирований/переалоцирования памяти.

Смотрел Apache NIO library, кусок кода отдачи результата клиенту - плакать можно, одно сплошное копирование буфферов туда-обратно, тупой encode через стандартные тормозные вызовы.
(вроде CharBuffer и non-heap memory задумывали, что бы избавиться от лишних копирований, на практике - все прямо наоборот, поскольку работа по символьно через CharBuffer безумно тормозная /проверка индексов на выход за пределы массива, отсутвие JIT оптимизаций/, то все равно сначала копируют в heap, потом обрабатывают, потом обратно копируют)

IMHO & AFAIK
...
Рейтинг: 0 / 0
Что не так с Java String и как вы с этим боретесь?
    #39706071
lleming
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Eugene NewЛибо дремучий дилетантизм, либо желание все как можно больше запутать. Т. к. эффект - ненадежность, медленность, сложность.
Можно аргументы поподробнее а не просто слова и эмоции, тогда можно говорить дальше. Пока выглядет как "я xml не видел не работал но осуждаю".

Eugene NewВот это вы пошутили. Судя по тому, какие открытия они начали совершать в 2017 году, даже элементарные вещи по перетряхиванию их архитектуры могут принести ощутимый эффект. Но они до этого еще не дошли. Видно, им надо еще 10 лет.

Со строками mayton уже сообщил что итоге все скатывается к строкам ибо они больщая часть jvm так что даже разработчки idea ничего нового не придумали. Вот eclipse сильно медленнее. Если это элементарно подскажите им что поменять чтобы было можно работать, а то только идея пока.

Eugene NewТем, что он создается явно и это хотя бы видно в коде. А в Java создается иллюзия удобства и прозрачности, которые Java на самом деле не обеспечивает.

По сути нет отличий нет что в C создаем буффер внутри цикла что на java создаем буффер внутри метода.
В java тоже явно, я даже описал как посмотреть, можно было удосужится и попробовать и потом говорить об илюзиях и удобстве.

Eugene NewНужно это разжевывать? Речь идет о Java, в которой вообще нет статических переменных, в которой на каждый чих создаются объекты в куче. Вы не можете обеспечить того, что память не будет тратится. Вы можете только махнуть рукой - и так мол сойдет.
Если я не прав, объясните, как вы будете гарантировать отсутствие выделений объектов в куче.

А зачем гарантировать отсутствие выделений объектов на куче, нужно гарантировать (что у многих вполне себе неплохо получается). что за жизненный цикл приложения понадобится куча не более определенного размера. Чтото так сложно то. Зачем такие приложения нужны тоже приводили примеры там где требуется минимальный отклик, либо жизненный цикл запустил сделал заботу завершил прилоежние.
Внезапно есть консольные приложения на java и некоторой части из них лучше вообще без выделить достаточно для работы дабы побыстрее, gc для таких только зря потерянное время и такты.

Eugene NewА лучше вообще не запускать. Тогда точно не закончится.
бинго.
Eugene NewХотя ведь всегда можно сказать, что пользователь идиот и нищеброд, который не захотел лишних 20 гигов оперативки ставить - и поэтому программа падает не раз в день, а раз в час.
Почему именно 20Гб а не 200Гб или не 100Мб? PS у самого 16Гб, тут кое у кого на форуме проскальзывало что 32 стоит на ноуте.
llemingЗачем такие приложения нужны тоже приводили примеры там где требуется минимальный отклик.
у этих финансистов 32 это не очем.
...
Рейтинг: 0 / 0
Что не так с Java String и как вы с этим боретесь?
    #39706075
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Eugene NewРечь идет о Java, в которой вообще нет статических переменных

Есть статические поля классов... Вы даже букварь не прочитали?

Eugene Newв которой на каждый чих создаются объекты в куче. Вы не можете обеспечить того, что память не будет тратится.

Есть способы уменьшить или исключить выделение памяти, применяются они как раз в приложениях, для которых Epsion GC будет приемлемым (ака Трейдерский софт например)

Eugene NewЕсли я не прав, объясните, как вы будете гарантировать отсутствие выделений объектов в куче.

Пулы объектов, использование Off-Heap memory, etc.

Eugene NewА лучше вообще не запускать. Тогда точно не закончится.
Хотя ведь всегда можно сказать, что пользователь идиот и нищеброд, который не захотел лишних 20 гигов оперативки ставить - и поэтому программа падает не раз в день, а раз в час.

IMHO
Не так и много случаев, когда нам нужно полностью избавиться от пауз для сборки мусора, и при этом иметь минимальный оверхед. В среднестастистических приложениях важно только обеспечить приемлемый уровень этих показателей. В таком случае само по себе выделение памяти проблемой не является, сборщик мусора скорее начнет тормозить из-за обилия "живых" (достижимых из корней ссылок) объектов, чем от создания объектов.
...
Рейтинг: 0 / 0
Что не так с Java String и как вы с этим боретесь?
    #39706080
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Eugene NewОгласили результат что наоборот стало сильно быстрее и меньше тратить памяти.

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

Надо хотя бы полные условия тестирования и методику тестов оглашать. Чтобы это было проверяемым со стороны.
Обычно крупные проекты содержат как элемент CI цикл тестирования перформанса. Перед релизом его прогоняют и смотрят что все измерения попали в зелёный сектор.

И никто здесь ничего оглашать не будет. Тоже мне...теорема Ферма. Просто релиз прошел успешно и все. Итеративная разработка. Увидели что хорошо и все.
...
Рейтинг: 0 / 0
Что не так с Java String и как вы с этим боретесь?
    #39706087
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonОбычно крупные проекты содержат как элемент CI цикл тестирования перформанса.
Честно говоря, ни разу нормального нагрузочного тестирования ни где не видел.

На одном проекте, был "перформанс-тест", но он скорее попадал не под категорию нагрузочное тестирование, а под тестирование обратной совместимости. Т.е. посмотреть, что при внисении изменений мы случайно вообще производительность не положили.

Очень сложно бизнес метрики (кол-во юзеров, данных) заранее привести к синтетическому тесту.

На практике, все вполне удовлетворяются грубым расчетом: раз при 1 G памяти мы спокойно обслуживаем 10 клиентов, то для 100 клиентов будет нужно 10 G памяти. Плюс минус лапоть, расчеты выполняют с запасом.

IMHO & AFAIK
...
Рейтинг: 0 / 0
Что не так с Java String и как вы с этим боретесь?
    #39706091
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid KudryavtsevmaytonОбычно крупные проекты содержат как элемент CI цикл тестирования перформанса.
Честно говоря, ни разу нормального нагрузочного тестирования ни где не видел.

На одном проекте, был "перформанс-тест", но он скорее попадал не под категорию нагрузочное тестирование, а под тестирование обратной совместимости. Т.е. посмотреть, что при внисении изменений мы случайно вообще производительность не положили.

У нас тоже нечто подобное. Но все бизнес кейсы покрывает а только самые high frequency. Например исполнение биржевого ордера. И каждый релиз у нас есть метрики. Если просядут - сядем анализировать.
...
Рейтинг: 0 / 0
Что не так с Java String и как вы с этим боретесь?
    #39706095
Eugene New
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И никто здесь ничего оглашать не будет

Еще бы. Им куда удобнее изображать из себя гуру, говорить что все хорошо. "И так сожрут".

Увидели что хорошо и все.
Им то что плохо, зарплата идет, деятельность имитируется. Опять же колес заглотнуть - так вообще все хорошо становится. Раз уж даже за написание публичной документации под ними никто пинком под зад из компании не выгонит. После этого работника из Оракула я вижу, что возможно вообще все.

даже разработчки idea ничего нового не придумали.
Даже! Ну вы и сказали. Если разработчики Идеи действительно лучшие, то тем хуже для всего сообщества Явы.

Есть статические поля классов..
Память под них выделяется где?

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

Огласите, пожалуйста, методику обеспечения таких гарантий. С формальным доказательством ее верности.

Почему именно 20Гб а не 200Гб или не 100Мб?
Как пример. Если у вас 20 и тормозит, всегда можно сказать, что надо 40.

Судя по Вашим постам у Вас есть достаточно опыта в разработке и оптимизации сложных систем
Для критики не обязательно делать самому. Достаточно сравнения с другими IDE. Например с теми, которые быстро работали под Pentium-1 и делали больше, чем современные IDE под Яву. А можно с тем, что имело многооконный интефейс, визуальный дебагер, справочную систему и занимало вместе с компилятором 150 килобайт, сравнить.

В андроидной студии нет нормального визуального редактора интерфейса. Скажите, если он где то под другие платформы под Яву есть. Если нет, выходит что уровня 1995 года эти IDE еще не достигли.

Текстовый редактор вряд ли является такой уж сложной системой, если, конечно, там каждый чих не усложняется намеренно.
Я думаю, что тут еще дело в том, что линуксоиды мало вообще знакомы с графическим интерфейсом и визуальными компонентами. Поэтому им не с чем сравнивать.
...
Рейтинг: 0 / 0
Что не так с Java String и как вы с этим боретесь?
    #39706097
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Eugene New,

Eugene NewПамять под них выделяется где?


Если переменная примитивного типа, то прямо в объекте класса, который живет в metaspace. Если не притивного, то в heap. В чем проблема?
...
Рейтинг: 0 / 0
Что не так с Java String и как вы с этим боретесь?
    #39706102
Eugene New
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как бы это поточнее выразится.. Методика "сошло и ладно, отвалится - переделаем" может подходить для некоторых заказных программ. Распространять ее на серийное ПО и тем более на системное или средства создания ПО как то не очень правильно.
...
Рейтинг: 0 / 0
Что не так с Java String и как вы с этим боретесь?
    #39706103
Eugene New
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lelouch,
вот видите - в куче.

Проблема в отсутствии критериев и доказательств того, что программа проработает определенное время. Раз уж вы их до сих пор не назвали, делаю вывод, что их не существует и что делают все наобум по принципу - "прокатило и ладно, а если что то будет - либо свалим на пользователя, либо в крайнем случае переделаем".
...
Рейтинг: 0 / 0
Что не так с Java String и как вы с этим боретесь?
    #39706106
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Eugene NewКак бы это поточнее выразится.. Методика "сошло и ладно, отвалится - переделаем" может подходить для некоторых заказных программ. Распространять ее на серийное ПО и тем более на системное или средства создания ПО как то не очень правильно.

1) Чем серийное ПО отличается от заказного, кроме количества покупателей? Может вы имели в виду прикладное по?
2) java явно не популярна для разработки системного ПО
3) а что не так со средствами создания ПО? чем они отличаются от прочего прикладного софта?
...
Рейтинг: 0 / 0
Что не так с Java String и как вы с этим боретесь?
    #39706107
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Eugene NewLelouch,
вот видите - в куче.

Проблема в отсутствии критериев и доказательств того, что программа проработает определенное время. Раз уж вы их до сих пор не назвали, делаю вывод, что их не существует и что делают все наобум по принципу - "прокатило и ладно, а если что то будет - либо свалим на пользователя, либо в крайнем случае переделаем".

А для какого языка они есть? Приведите пример, пожалуйста.
...
Рейтинг: 0 / 0
Что не так с Java String и как вы с этим боретесь?
    #39706108
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Eugene New,

и да, в чем проблема выделения памяти в куче? Это ж не какая-то особенность java.
...
Рейтинг: 0 / 0
Что не так с Java String и как вы с этим боретесь?
    #39706110
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Eugene NewРаз идентификаторы содержат только латинские буквы и цифры с подчеркиванием (это ведь так для Java?)"Я прикрепил"
...
Рейтинг: 0 / 0
Что не так с Java String и как вы с этим боретесь?
    #39706112
Eugene New
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lleming,

Можно аргументы поподробнее а не просто слова и эмоции, тогда можно говорить дальше. Пока выглядет как "я xml не видел не работал но осуждаю".

Я выше уже говорил об этом. Что касается XML самого по себе - то это иерархическая БД в текстовом виде, в которой доступ к любым данным будет происходит крайне медленно, т. к. для него нужен синтаксический разбор. Причем из-за синтаксиса закрытия тегов в XML полезной информации там обычно процентов 50 или меньше, остальное мусор. Синтаксический разбор - работа с текстом - значит задействуются строки. В Ява любое использование строк чревато утечками памяти (будем уже их так называть). Авторы ИДЕИ вообще анализировали ли во что им обходится использование xml, да еще такой кучи файлов? Судя по всему нет. Пытались ли они хоть как то оптимизировать их или там каждый раз, чтобы получить какое-то одно значение параметра настройки, дергается синтаксический разбор по новой? Судя по всему, так и делается.

Альтернатива - плоские файлы. Пускай даже в текстовом виде с разделителями, с не с записями фиксированной длины, которые неудобно редактировать вручную.
...
Рейтинг: 0 / 0
Что не так с Java String и как вы с этим боретесь?
    #39706113
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Eugene NewВ Ява любое использование строк чревато утечками памяти (будем уже их так называть).

Нет не будем. В Java под утечками памяти понимается ситуация, при которой сборщик мусора считает объект "живым", а на самом деле он уже не нужен. Происходит исключительно из-за рукожопости программиста.
...
Рейтинг: 0 / 0
Что не так с Java String и как вы с этим боретесь?
    #39706115
Eugene New
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lelouch,
и да, в чем проблема выделения памяти в куче?
в исчерпании свободного места и падении программы в любой момент, если вы эту память совсем не освобождаете.
А для какого языка они есть?
Ни для какого нет. Поэтому нельзя делать программы, рассчитанные на динамическое выделение памяти без ее освобождения и падение программы в результате этого.
...
Рейтинг: 0 / 0
Что не так с Java String и как вы с этим боретесь?
    #39706117
Andy_OLAP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. Sidorov,

Ему не нужно в школу, пусть и дальше пилит приложения на новой android studio и страдает. Кроме того, Вы таки даже не представляете, сколько еще опытов мы запланировали провести на этом участнике форума. Надеюсь, модераторы никогда его не забанят, это исключительно кошерный экземпляр носителя современного мышления.
...
Рейтинг: 0 / 0
Что не так с Java String и как вы с этим боретесь?
    #39706118
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Eugene NewLelouch,
и да, в чем проблема выделения памяти в куче?
в исчерпании свободного места и падении программы в любой момент, если вы эту память совсем не освобождаете.
А для какого языка они есть?
Ни для какого нет. Поэтому нельзя делать программы, рассчитанные на динамическое выделение памяти без ее освобождения и падение программы в результате этого.

1) Приложения, которые в java совсем не освобождают память - огромная редкость. И люди, которые их пишут, делают это осознано и с применением техник, которые уменьшают или исключают выделение памяти.
2) FYI Если что , есть целый язык, сделаный с философией Let it crash, называется erlang .
...
Рейтинг: 0 / 0
Что не так с Java String и как вы с этим боретесь?
    #39706120
lleming
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Eugene Newlleming,

Можно аргументы поподробнее а не просто слова и эмоции, тогда можно говорить дальше. Пока выглядет как "я xml не видел не работал но осуждаю".

Я выше уже говорил об этом. Что касается XML самого по себе - то это иерархическая БД в текстовом виде, в которой доступ к любым данным будет происходит крайне медленно, т. к. для него нужен синтаксический разбор. Причем из-за синтаксиса закрытия тегов в XML полезной информации там обычно процентов 50 или меньше, остальное мусор. Синтаксический разбор - работа с текстом - значит задействуются строки. В Ява любое использование строк чревато утечками памяти (будем уже их так называть). Авторы ИДЕИ вообще анализировали ли во что им обходится использование xml, да еще такой кучи файлов? Судя по всему нет. Пытались ли они хоть как то оптимизировать их или там каждый раз, чтобы получить какое-то одно значение параметра настройки, дергается синтаксический разбор по новой? Судя по всему, так и делается.

Альтернатива - плоские файлы. Пускай даже в текстовом виде с разделителями, с не с записями фиксированной длины, которые неудобно редактировать вручную.

Тут все легко разобрать по пунктам. Везде есть свой трейд офф.
Избыточность xml да известный недостаток. Из за нее у xml жирный плюс самодокументированость, поэтому навскидку там данных процентов 50 или меньше, еще 30-40% это информация о структуре данных. В случае не xml вы это описание во внешнем файле прячете. Если описания нет то файл бессмыслица в отличие от xml.

В Ява любое использование строк чревато утечками памяти неверная фраза вот правильная
любая работа с паматью внезависимости от языка программирония или IDE чревата утечками памяти.
Авторы idea думаю они знакомы с концепцией DOM, а вы судя по всему нет.
...
Рейтинг: 0 / 0
Что не так с Java String и как вы с этим боретесь?
    #39706127
Eugene New
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. Sidorov,
"Я прикрепил"

Я вашу Яву не знаю в подробностях и не скрываю это. Раз у них можно идентификаторы на других языках - значит они идиоты. При нулевой пользе создали себе этим массу проблем.
...
Рейтинг: 0 / 0
25 сообщений из 293, страница 6 из 12
Форумы / Java [игнор отключен] [закрыт для гостей] / Что не так с Java String и как вы с этим боретесь?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]