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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Uvili4enie proizvoditelnosti koda 
V
    Опции темы
Tony
  Дата 2.1.2008, 17:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1159
Регистрация: 3.3.2006
Где: Riga

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



Ho4u obsuditь vopros uvili4enie proizvoditelnosti koda. Vsem izvsetno 4to:
a+=1 4em a=a+1
StrinBuffer vmesto konkatencii strok.
Objedinenie neskolkih uslovij v odnom if 4em v 2 i bolee.
Kakie eshjo estь sposobi ?

P.S.
Po4emu trasnlit ne rabotaet  smile ???

Это сообщение отредактировал(а) Tony - 2.1.2008, 17:36


--------------------
user posted image
user posted image
PM MAIL Skype   Вверх
Platon
Дата 2.1.2008, 17:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1801
Регистрация: 25.4.2006

Репутация: 16
Всего: 40



Цитата(Tony @  2.1.2008,  18:35 Найти цитируемый пост)
a+=1 4em a=a+1

разве это увеличивает скорость?!

Добавлено через 28 секунд
a++ наверно?

Добавлено через 1 минуту и 55 секунд
умножение на число в степени двойки.

x * 2 == x << 1
x * 4 == x << 2
x * 8 == x << 3

Добавлено через 8 минут и 49 секунд
вот вообще классная статейка по баловству с битами
PM MAIL ICQ   Вверх
Tony
Дата 2.1.2008, 18:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1159
Регистрация: 3.3.2006
Где: Riga

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



Цитата(Platon @ 2.1.2008,  17:39)
Цитата(Tony @  2.1.2008,  18:35 Найти цитируемый пост)
a+=1 4em a=a+1

разве это увеличивает скорость?!

Добавлено @ 17:39
a++ наверно?

Добавлено @ 17:41
умножение на число в степени двойки.

x * 2 == x << 1
x * 4 == x << 2
x * 8 == x << 3

Добавлено @ 17:48
вот вообще классная статейка по баловству с битами

Код

a+=1 4em a=a+1

Da,tut ne uda4no privjol nadobilo 
Код

a+=100 4em a=a+100 


V ru nete bila statja pro java i kak povisit' proizvoditelnost' No ssilki ne pomnju :(

Это сообщение отредактировал(а) Tony - 2.1.2008, 18:24


--------------------
user posted image
user posted image
PM MAIL Skype   Вверх
COVD
Дата 2.1.2008, 18:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1655
Регистрация: 26.7.2005

Репутация: 17
Всего: 43



Ловля "блох". Компилятор, наверняка, сам справляется с такого рода оптимизациями. 

PM MAIL   Вверх
Platon
Дата 2.1.2008, 18:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1801
Регистрация: 25.4.2006

Репутация: 16
Всего: 40



да, пожалуй, но с битами, всё-таки думаю нет ^_^
PM MAIL ICQ   Вверх
w1nd
Дата 3.1.2008, 23:29 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вертилятор
***


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

Репутация: 20
Всего: 54



Цитата(Platon @  2.1.2008,  18:28 Найти цитируемый пост)
да, пожалуй, но с битами, всё-таки думаю нет ^_^

И с битами в том числе. Многое ещё зависит от конкретной архитектуры, от того, будет ли данный кусок java-кода скомпилирован и на каком этапе (и каким образом, конечно). 

Для справки - на моём компьютере java-код x & 1 не будет работать быстрее, чем x % 2.

При ручной оптимизации стоит обращать внимание только на минимизацию обращений к памяти, всё остальное не стоит внимания. Да и это уже - гадание на кофейной гуще - целевая jvm не известна. Ведь при работе на каком-нибудь процессоре, где вообще нет разницы в скорости для разных арифметических операций вся эта работа коту под хвост. А ведь вполне можно нарваться на такой, где наоборот - умножение и деление будет работать много быстрее битовых операций. Так что не стоит, не стоит smile

Это сообщение отредактировал(а) w1nd - 3.1.2008, 23:37


--------------------
user posted imageuser posted image
PM MAIL ICQ   Вверх
Tony
  Дата 5.1.2008, 14:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1159
Регистрация: 3.3.2006
Где: Riga

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



Nu kak ja ponimaju, boslhe ne kakih soobrazhenij net smile ?


--------------------
user posted image
user posted image
PM MAIL Skype   Вверх
Platon
Дата 5.1.2008, 15:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1801
Регистрация: 25.4.2006

Репутация: 16
Всего: 40



w1nd, вы статейку почитайте, там более сложные операции, чем операции с умножением и делением.


Цитата(Tony @  5.1.2008,  15:43 Найти цитируемый пост)
Nu kak ja ponimaju, boslhe ne kakih soobrazhenij net smile ? 

на самом деле, договориться можно до многого, вплоть до того, чтобы выбрать native язык, так скорость вообще возрастет ^_^
Как мне недавно на форуме ответили "Это не наши методы" ©

Добавлено через 11 минут и 9 секунд
С другом разрабатывали шахматы недавно в рамках лабораторной работы. Первая версия ИИ была очень тормозящая и менее умная. Сначала думали, что проблема в том, что шахматы хранятся массиве а не в векторе (разница, что использовать в нашем случае была), ИИ делал массовые операции, поэтому считается, что оптимизация уместна.
Попробовали, сделали... результат тот же, со временем совершенствовался ИИ, применялись новые подходы, в итоге ИИ в конечной версии бегает шустро, почти мгновенно, вот и думайте, стоит ли ломать спички, когда собака зарыта в подходе ^_^

А по теме вот еще ссылочка: http://lib.juga.ru/article/view/164/1/68/
И хорошее начало:
Цитата

"Необдуманная оптимизация является первопричиной всех бед"
Дональд Кнут 

PM MAIL ICQ   Вверх
w1nd
Дата 6.1.2008, 07:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вертилятор
***


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

Репутация: 20
Всего: 54



Цитата(Platon @  5.1.2008,  15:23 Найти цитируемый пост)
w1nd, вы статейку почитайте, там более сложные операции, чем операции с умножением и делением.

В кроссплатформенной среде оптимизация кода под конкретную архитектуру (процессор/ОС/jvm) бессмысленна и вредна. Поэтому для java ничего подобного не читал, впредь не собираюсь и другим не советую smile

Это сообщение отредактировал(а) w1nd - 6.1.2008, 07:59


--------------------
user posted imageuser posted image
PM MAIL ICQ   Вверх
Platon
Дата 10.7.2008, 21:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1801
Регистрация: 25.4.2006

Репутация: 16
Всего: 40



Наконец нашел в сундучке запылившуюся тему, Сдуем пылинки
Вернемся к нашим битам.
Скажите, уважаемый w1nd, если под архитектуру подстраиваться не стоит, то как же объяснить, к примеру, работу метода Integer.getChars()
где изобилируют строки типа 
Код

// really: r = i - (q * 100);
r = i - ((q << 6) + (q << 5) + (q << 2));

PM MAIL ICQ   Вверх
Ulysses4j
Дата 10.7.2008, 22:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: 2
Всего: 10



Цитата(COVD @  2.1.2008,  18:25 Найти цитируемый пост)
Ловля "блох". Компилятор, наверняка, сам справляется с такого рода оптимизациями. 

+1 Современные компиляторы делают такие вещи намного лучше простых смертных программистов. Это становится понятным, если послушать приличный университетский курс по оптимизирующим компиляторам. Ну, или Ахо почитать (как раз новенький вышел).

Лучше читайте руководства по тюнингу JVM — здесь намного большего достичь можно.

Правда, пробегало что-то в ru_java про оптимизацию хранения примитивных типов в коллекциях (действуя в лоб, их же в объекты заворачивать нужно): есть какие-то такие наработки. Но конкретней не скажу.


--------------------
Communication is critical to the job of a programmer.
C. Jazdzewski. Fatherly Advice To New Programmers
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

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

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


 




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


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

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