1

Посоветуйте литературу для Java с советами по оптимизации кода или ресурс. Можно на английском.

*Мне нужна литература с рекомендациями как писать нормальный код, как поступать в отдельных случаях,какой путь выбрать, я понимаю все преимущества и недостатки java (поэтому не надо поднимать этот вопрос).

Grundy
  • 81,538
A_Cen
  • 63
  • Java код и оптимизация это примерно тоже самое что +30 тепла в Москве в декабре, хотите скорости перепишите на С\asm это самое лучшее что можно сделать. – igumnov Sep 23 '12 at 10:50
  • Java код и оптимизация это примерно тоже самое что +30 тепла в Москве в декабре, хотите скорости перепишите на С/asm это самое лучшее что можно сделать.

    время идет а люди не меняются, - не понимают как устроена java и не пытаются разобратся. асемблерный код транслируется в инструкции которые выполняет процессор. Java код транслируется в код который выполняет JVM. Поэтому можно даже сказать что java это компилируемый скрипт язык. Обсирая скорость ее вы обсираете производительность JVM (писаных на С между прочим).

    p.s. уже молчу о том что есть платформенно зависимая JIT компиляция

    – jmu Sep 23 '12 at 11:12
  • @igumnov то есть вы считаете, что Java-программы нельзя оптимизировать? То есть вы считаете, что переписать тот же код только на c/asm даст огромный прирост производительности (я конечно не о говорю сейчас о разработке игр, например, это отдельная тема).

    По поводу вопроса все зависит от того, что пишите. Полезно знать внутренности (как работают классы, которые вы используете) и алгоритмы.

    – misha_m Sep 23 '12 at 11:25
  • @jmu Ничего не имею против Java, это хорошее годное средство разработки, но делать на ней что-то что требует чрезвычайно высокой пиковой производительности и большого расхода памяти правда плохая идея.

    @rasmisha Можно конечно. Но нужно хорошо понимать что, зачем, почему и каким образом оптимизируется. Если переписать тот же код на С то как минимум можно сэкономить память которая требуется для поддержания работы JVM.

    А вообще производительность Java = холивар. Поэтому покидаю тред.

    – igumnov Sep 23 '12 at 11:55
  • 5
    2 @igumnov: лучше хороший код на java, чем плохой на С/Асм. Мне кажется, это очевидно всем. А еще скажу вам то, что очевидно любому "заказчику", - лучше написать продукт на java чем на С/Асм. Дешевле, быстрее и обычно более качественно (потому что специалистов приемливого уровня больше) + поддерживать легче.

    p.s. адекватный программист будет оптимизировать даже тот код, который никому не нужен. Даже если это бат(шел) скрипт, дял дома, для одноразовой задачи. Нет ничего плохого в том, что человек хочет развиватся и писать код лучше, совершенстуясь при этом

    – jmu Sep 23 '12 at 12:25
  • @jmu С тем что выше P.S. согласен. По поводу P.S. то это весьма спорно в том случае если проект больших размеров. В такой ситуации лучше вообще игнорировать однократно выполняющийся код и сосредоточиться на профилировании критически важных петель которые работают в реальном времени. Хотя я в основном занимаюсь 3D рендерингом, поэтому не знаю как эти вопросы решаются в других областях где требуется производительность, вроде нагруженных серверов с базами или каких-то сложных научных расчетов. – igumnov Sep 23 '12 at 12:51
  • В сферах, которые вы упомянули выше, java вообще не используется. На счет оптимизаций, - вы описали алг применимый для любого языка.

    Касательно искомого вопроса: я думаю автор имел в виду не только оптимизацию перфоманса. Для меня оптимизация кода в первую очередь это clean up и рефакторинг, структурирование с использованием шаблонов, докуметирование. Даже если со временем появляется необходимость оптимизация перфоманса то это делается обычно с минимальными изменениями (я работаю в сфере где от продуктов не требуют космических скоростей)

    – jmu Sep 23 '12 at 20:11

4 Answers4

5

По апдейту могу посоветовать Effective Java 2nd Edition by Joshua Bloch ( ISBN-13: 860-1300201986, ISBN-10: 0321356683), одна из моих любимых книг

misha_m
  • 1,405
4

Мне нужна литература с рекомендациями как писать нормальный код

Вот конкретный how to как писать оптимальный код: Java Code Optimization

abg
  • 1,959
2

Java Puzzlers - Joshua Bloch. Сейчас читаю - очень интересно

RomanoO
  • 466