Недостатки java?

Любые обсуждения, не нарушающие правил форума.

Модератор: Модераторы

Re: Недостатки java?

Сообщение SSerge » 20.11.2015 11:44:29

azsx писал(а):Памяти будет не хватать, будет юзать файл подкачки


Не будет. :P Это принято не афишировать, но для дефолтного запуска виртуальной машины отводится обычно строго определенное количество памяти. В Oracle JAVA порог ЕМНИП 128 мегабайт. Порог превышен - программа рухнула с соответствующим диагнозом. Чтобы забрать больше, нужно предварительно сказать виртуальной машине - сколько.

azsx писал(а):могу посчитать ... сколько памяти


Ровно так же как в Си вы на самом деле не можете заранее посчитать количество необходимой памяти, потому что не можете знать, сколько займут подключаемые динамические библиотеки, так и для JAVA вы не можете. :P Или можете? В чем разница то? И там и там некий довесок, который просто учитывается при расчете и всё.

Добавлено спустя 8 минут 34 секунды:
azsx писал(а):что java работает быстрее С, особенно на числодробительных задачах.


Термин "числодробительные задачи" пусть останется на совести того, кто его придумал. Если у него JAVA внезапно в разы выигрывает на сложных вычислениях с плавающей точкой - значит, в том, с чем сравнивается - неописуемый зоопарк из переменных разного типа и постоянные конверсии с приведением точности (или данные другого типа, например). Вряд ли что-то иное. Сравнивать математику floating pouint - достаточно бессмысленное занятие, в случае, когда сами данные представлены в виде, близком или совпадающем с машинным. На языках высокого уровня будет примерно одна и та же производительность - там практически нечему оптимизироваться. То же и с целочисленной математикой.

Ща можно на Visual C++ откомпилять программу с отладочными библиотеками, запустить, и радоваться, как она бурно сливает всем конкурентам. Особенно если где то в середине поставить breakpoint по условию анализа данных... :D Вот вам тоже метод тестирования, да.

Добавлено спустя 6 минут 5 секунд:
Кстати, вот такой вот замечательный тестировочный код:
Код: Выделить всё

i:=0;
(тут ставим отметку времени)

for j:=0 to 100000 do
  i:=i+1;

(тут радуемся быстроте исполнения)



(очень частый аналог в доморощенных тестах производительности, кста)
Казалось бы, подвох в чем? :D А в том, что этот цикл не обязан исполняться.
Если i после цикла нигде не используется, компилятор или исполняющая среда вправе похерить весь бессмысленный с точки зрения действий участок кода. Perl, например, похерит гарантированно. И можно потом радоваться, как он быстро исполнил "цикл с присвоением", не так ли?
SSerge
энтузиаст
 
Сообщения: 971
Зарегистрирован: 12.01.2012 05:34:14
Откуда: Барнаул

Re: Недостатки java?

Сообщение azsx » 20.11.2015 12:06:26

то есть java программа ограничена 128 мегабайтами оперативной памяти? То есть клиент настраивать не будет (установка джава для клиента - повод для гордости), и? Если я создам массив в джава на 500 метров - прога сдохнет? Очень мне не понятно...
Давайте поближе к моей реальной задаче. Есть файл 50 гб, текстовой. Он заранее разбит по 500 мб. Файлы (в теории) хорошо бы еще сжать zip'ом и распаковывать в оперативку на лету (экономия даже в 2 раза объема - это няшка для hdd винта). Файл получается целиком в переменную, обрабатывается расширенным аналогом grep'а (сам писал недостающее). Соотвественно задача очень легко паралелится если: а выборка долгая; или б) дисков много. Только оперативка всё равно одна.
Вопросы: эту задачу лучше делать на паскале или на джава? Кто и почему будет производительнее?
azsx
энтузиаст
 
Сообщения: 959
Зарегистрирован: 16.11.2015 06:38:32

Re: Недостатки java?

Сообщение SSerge » 20.11.2015 12:24:37

azsx писал(а):эту задачу лучше делать на паскале или на джава?


Для этой задачи вам стоит лучше продумать алгоритм обработки. У меня большое подозрение, что вы решаете ее не самым правильным способом.

azsx писал(а):Кто и почему будет производительнее?


А сделать то и другое и посмотреть на результаты? почему бы нет?

azsx писал(а):то есть java программа ограничена 128 мегабайтами оперативной памяти?

смотрим, напримре, здесь:
http://forum.vkurske.org/index.php?topic=71.0
SSerge
энтузиаст
 
Сообщения: 971
Зарегистрирован: 12.01.2012 05:34:14
Откуда: Барнаул

Re: Недостатки java?

Сообщение azsx » 20.11.2015 12:30:26

У меня большое подозрение, что вы решаете ее не самым правильным способом.

куда копать?
смотрим, напримре, здесь:

я понял, что я память увеличить могу. Например, на -Xincgc -Xmx2048M
но вот обычный клиент на винде. Не читает всякую фигню о настройке памяти. Значит в яве я могу рассчитывать только на 128 мб оперативной памяти?
azsx
энтузиаст
 
Сообщения: 959
Зарегистрирован: 16.11.2015 06:38:32

Re: Недостатки java?

Сообщение SSerge » 20.11.2015 12:35:23

azsx писал(а):куда копать?


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

azsx писал(а): Не читает всякую фигню о настройке памяти. Значит в яве я могу


Не прорабатывал вопрос. В конце концов для клиента можно подготовить ярлычок с нужной строкой запуска.
SSerge
энтузиаст
 
Сообщения: 971
Зарегистрирован: 12.01.2012 05:34:14
Откуда: Барнаул

Re: Недостатки java?

Сообщение azsx » 20.11.2015 12:51:22

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

ясно
ну скажем иногда построчное чтение с анализом данных тут же

у меня всегда раньше намного дольше было.
azsx
энтузиаст
 
Сообщения: 959
Зарегистрирован: 16.11.2015 06:38:32

Re: Недостатки java?

Сообщение vitaly_l » 20.11.2015 12:55:18

azsx писал(а):у меня всегда раньше намного дольше было.

Странно... построчное чтение быстрее и надёжнее.. Возможно у Вас какой-то сложный формат?
Аватара пользователя
vitaly_l
долгожитель
 
Сообщения: 3333
Зарегистрирован: 31.01.2012 16:41:41

Re: Недостатки java?

Сообщение Mikhail » 20.11.2015 12:59:38

SSerge писал(а):ну скажем иногда построчное чтение с анализом данных тут же, оказывается во много раз быстрее алгоритмики "всосал всё в память, обработал, всосал в память..."

Только в случае асинхронного IO, в остальных случаях или также или медленнее.
Mikhail
энтузиаст
 
Сообщения: 565
Зарегистрирован: 24.10.2013 16:06:47

Re: Недостатки java?

Сообщение azsx » 20.11.2015 13:07:30

нет обычный текстовые строки. Типа базы пастухова, если знаете.
последний раз, когда записей было 1млрд + немного, в среднем было 38 символов в строке. Ваще от 2 до 125. Но там чистки бывают, наверное иной раз всё меняется.
вот выборки все поголовно необычные, так как обычные проще делать либо grep либо другим софтом.
azsx
энтузиаст
 
Сообщения: 959
Зарегистрирован: 16.11.2015 06:38:32

Re: Недостатки java?

Сообщение vitaly_l » 20.11.2015 13:14:56

Mikhail писал(а):Только в случае асинхронного IO, в остальных случаях или также или медленнее.

У него файлы по 500 метров. Боюсь Вы неправы, на таких гигантских размерах - построчное должно быть быстрее. Разве нет?
azsx писал(а):нет обычный текстовые строки. Типа базы пастухова

Тогда читать построчно и легко можно сверить скорость работы в С / Паскале или JAVA...
Честно говоря я сомневаюсь что JAVA обработает быстрее. Но... аргументы они приводят реальные. Попробуйте данные "вычислять" как-нить.
Аватара пользователя
vitaly_l
долгожитель
 
Сообщения: 3333
Зарегистрирован: 31.01.2012 16:41:41

Re: Недостатки java?

Сообщение Mikhail » 20.11.2015 13:24:51

vitaly_l писал(а):У него файлы по 500 метров. Боюсь Вы неправы, на таких гигантских размерах - построчное должно быть быстрее. Разве нет?

Быстрее чем что? :?
Mikhail
энтузиаст
 
Сообщения: 565
Зарегистрирован: 24.10.2013 16:06:47

Re: Недостатки java?

Сообщение vitaly_l » 20.11.2015 13:27:28

Mikhail писал(а):Быстрее чем что?

Ну например... можно грузить в одну и туже ячейку например... а не занимать их 1 000 000 000... Да?
Аватара пользователя
vitaly_l
долгожитель
 
Сообщения: 3333
Зарегистрирован: 31.01.2012 16:41:41

Re: Недостатки java?

Сообщение azsx » 20.11.2015 13:38:36

раньше у меня была одна проблема... плюсы и минусы java.
теперь у меня еще одна проблема - как улучшить алгоритм.
ээх...
azsx
энтузиаст
 
Сообщения: 959
Зарегистрирован: 16.11.2015 06:38:32

Re: Недостатки java?

Сообщение Mikhail » 20.11.2015 13:39:22

vitaly_l писал(а):Ну например... можно грузить в одну и туже ячейку например... а не занимать их 1 000 000 000... Да?

Если размер блока достаточно большой, то без разницы... если синхронный IO.
Mikhail
энтузиаст
 
Сообщения: 565
Зарегистрирован: 24.10.2013 16:06:47

Re: Недостатки java?

Сообщение SSerge » 20.11.2015 13:39:38

azsx, вам все таки на чем это надо эксплуатировать?
Если исключительно windows, то СиШарповская реализация с большой вероятностью будет быстрее, чем на FreePascal. У явы при таких объемах строковых данных (и, соответственно, мусора) в памяти читалка может захлебнуться. А может и нет. На самом деле, практика лучше показывает, чем рассуждения на тему. Ну и познать дополнительный язык программирования - никогда не лишнее.

Добавлено спустя 4 минуты 3 секунды:
Mikhail писал(а):если синхронный IO


Что вы имеете в виду под синхронностью и асинхронностью?
Я под "построчным чтением" полагаю буферизованный средствами библиотек I/0 поток данных, из которого забирается и обрабатывается строка. При удачном подборе размера буфера, будет по крайней мере не медленнее чем "считать в память много много мегабайт", особенно если эти много-много мегабайт считываются не двоичным блочным вводом, а теми же самыми построчными операциями.
Последний раз редактировалось SSerge 20.11.2015 13:49:57, всего редактировалось 1 раз.
SSerge
энтузиаст
 
Сообщения: 971
Зарегистрирован: 12.01.2012 05:34:14
Откуда: Барнаул

Пред.След.

Вернуться в Потрепаться

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 21

Рейтинг@Mail.ru