Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Оптимизация программ 
:(
    Опции темы
batigoal
Дата 15.3.2005, 11:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нелетучий Мыш
****


Профиль
Группа: Участник Клуба
Сообщений: 6423
Регистрация: 28.12.2004
Где: Санктъ-Петербургъ

Репутация: 24
Всего: 151



Я помню, что "один топик - один вопрос", но все же:

1. Что входит в понятие оптимизации программы?
2. Как это делается (не на уровне байткода)?

Я слышал, что многие компиляторы (не джавовские) выполняют некоторые оптимизирующие действия, например, в коде:

Код

while(..)
{
  int i;
  System.out.println("A");
}


самостоятельно вынесут "int i;" за пределы цикла. Делает ли что-нибудь подобное javac?


--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
Domestic Cat
Дата 15.3.2005, 12:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5452
Регистрация: 3.5.2004
Где: Dallas, US

Репутация: 50
Всего: 172



http://forum.vingrad.ru/index.php?showtopi...%E7%E0%F6%E8%FF
http://forum.vingrad.ru/index.php?showtopic=24799&st=0

Цитата(Lamer @ 15.3.2005, 02:53)
Делает ли что-нибудь подобное javac?


Делает. И JIT делает. smile



--------------------

PM   Вверх
batigoal
Дата 15.3.2005, 12:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нелетучий Мыш
****


Профиль
Группа: Участник Клуба
Сообщений: 6423
Регистрация: 28.12.2004
Где: Санктъ-Петербургъ

Репутация: 24
Всего: 151



Пардон, не заметил этих тем. Полезно.


--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
batigoal
Дата 15.3.2005, 16:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нелетучий Мыш
****


Профиль
Группа: Участник Клуба
Сообщений: 6423
Регистрация: 28.12.2004
Где: Санктъ-Петербургъ

Репутация: 24
Всего: 151



Пойду исправлять Vector'ы на ArrayList'ы. smile


--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
NotGonnaGetUs
Дата 16.3.2005, 12:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 92
Регистрация: 25.2.2005
Где: Москва

Репутация: 4
Всего: 12



Цитата

http://forum.vingrad.ru/index.php?showtopi...%E7%E0%F6%E8%FF
http://forum.vingrad.ru/index.php?showtopic=24799&st=0

Прочитал что там написано и сходил по ссылкам.

Интересно, это
Код

    try {
            for (ii = 0; ; ii++)
                  array[ii] = ii;
    } catch (IndexOutOfBoundsException e) {}

действительно работало в java1.1 эффективнее, чем это
Код

      for (ii = 0; ii<array.length; ii++)
             array[ii] = ii;


?

Второй вариант работает в 5,5 раз быстрее в client mode, а сервер mode совсем конец света smile
Цитата

                  -server                          без него: 
1.3.1          570 vs 8062                  430 vs 2273
1.4.2_06    360ms vs 10600ms        570 vs 3000
1.5.0_01    350 ms vs 420 ms          560 vs 3100


Короче говоря, надо с юмором относится к некоторым рекомендациям.
Таким как выше приведённая, "String.equalsIgnoreCase() быстрее String.equals()" и т.д. smile


PM MAIL   Вверх
Domestic Cat
Дата 17.3.2005, 06:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5452
Регистрация: 3.5.2004
Где: Dallas, US

Репутация: 50
Всего: 172



Цитата
Короче говоря, надо с юмором относится к некоторым рекомендациям.

Я в это не вникал, если честно. Все эти оптимизации хороши там где надо, в частности в играх; в обычных приложениях лучше писать красивый код.
Так, я бы try-catch не пользовал в любом случае, т.к. он там ни к селу, ни к городу. equals пользовал бы наиболее подходящий. Хотя про equals - лажа, достаточно в сорец глянуть.





--------------------

PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0538 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.