Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Вопросы машинно- независимой оптимизации кода / 15 сообщений из 15, страница 1 из 1
15.01.2012, 18:22:00
    #37615355
ivanov-void
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопросы машинно- независимой оптимизации кода
Приветствую!

Это может быть, например -

...

Минимизация преобразования типов в выражениях;

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

...

Если кто- то может расширить список не сразу очевидными приемами, думаю, это было бы полезной информацией.
...
Рейтинг: 0 / 0
15.01.2012, 18:58:36
    #37615370
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопросы машинно- независимой оптимизации кода
мемоизация вместо твоего пункта №2. Это более общая постановка проблемы.

COW там где это возможно и не только для строковых переменных а для объектов.

Организация пулов и кешей объектов. Прочие алгоритмические оптимизации которые компиллятор в состоянии увидеть.
...
Рейтинг: 0 / 0
15.01.2012, 19:07:23
    #37615373
1024
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопросы машинно- независимой оптимизации кода
это вредная информация. Там всё сделано нормально с хранением скалярных массивов или пр. блаблабла.

Оптимизировать надо в совершенно других местах, типа долгое время отклика от сервера, использование в разборе текста String вместо StringBuilder и пр.
...
Рейтинг: 0 / 0
15.01.2012, 20:15:15
    #37615413
ShSerge
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопросы машинно- независимой оптимизации кода
Что такое "машинно-независимая" оптимизация кода? Подозреваю, что это - просто программу надо правильно написать, вне зависимости от языка программирования и платформы.
Другое дело, надо найти точки (множество) пересечения треугольника и окружности на яве. Можно, конечно, пробежаться по всем точкам и подставить значения в уравнение, а можно использовать стандартные средства (2Д). Второе гораздо проще и работать будет в десятки раз быстрее, потому что методы Java2D используют нативный код.
...
Рейтинг: 0 / 0
15.01.2012, 20:22:54
    #37615416
1024
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопросы машинно- независимой оптимизации кода
ShSergeЧто такое "машинно-независимая" оптимизация кода? Подозреваю, что это - просто программу надо правильно написать, вне зависимости от языка программирования и платформы.
Другое дело, надо найти точки (множество) пересечения треугольника и окружности на яве. Можно, конечно, пробежаться по всем точкам и подставить значения в уравнение, а можно использовать стандартные средства (2Д). Второе гораздо проще и работать будет в десятки раз быстрее, потому что методы Java2D используют нативный код.

а можно заранее составить таблицу с возможными значениями, скажем с шагом в одну сотую, и брать значения оттуда. Будет ещё быстрее.
...
Рейтинг: 0 / 0
15.01.2012, 22:41:10
    #37615509
ivanov-void
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопросы машинно- независимой оптимизации кода
Приветствую всех!

Под машинно- независимой имеется в виду оптимизация на уровне входного языка.
...
Рейтинг: 0 / 0
15.01.2012, 23:52:32
    #37615549
Ruslan.Isbarov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопросы машинно- независимой оптимизации кода
ivanov-void , вот ряд оптимизаций, которые смог вспомнить. Перечисляю как оптимизации, производимые компилятором, так и оптимизации, выполняемые в рантайме.

1. Инлайнинг.
2. Девиртуализация вызова метода - замена виртуального вызова метода на прямой статический вызов (и без обращения к ТВМ).
3. Замена параметров методов константными значениями.
4. Удаление избыточных проверок на null (NULL Check Elimination).
5. Удаление избыточных проверок принадлежности к подклассу какого-либо класса (Dynamic Cast Elimination).
6. Удаление избыточных проверок выхода индекса массива за его пределы (Range Check Elimination). В JVM .
7. Развертывание объектов (не помню точное название), создаваемых и используемых только в пределах ограниченной локальной области. Более подробно, см. Escape Analysis , особенно Converting heap allocations to stack allocations.
8. Развертывание циклов / расцикливание (Loop Unrolling). В JVM .
9. Удаление неиспользуемого кода.
10. Удаление общих выражений (Subexpression Elimination).
...
Рейтинг: 0 / 0
15.01.2012, 23:56:46
    #37615558
grasoff.net
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопросы машинно- независимой оптимизации кода
Ruslan.Isbarovкоторые смог вспомнитьне там работаешь )
...
Рейтинг: 0 / 0
16.01.2012, 00:00:31
    #37615565
ShSerge
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопросы машинно- независимой оптимизации кода
Ruslan.Isbarov,

А что такое инлайнинг и девиртуализация?
...
Рейтинг: 0 / 0
16.01.2012, 00:05:17
    #37615569
grasoff.net
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопросы машинно- независимой оптимизации кода
ShSergeинлайнингесли щтото используется один раз (например, метод), то оно (например, тело метода) тупо вставляется туда, где есть его (например, метода) вызов
ShSergeдевиртуализацияэто мне в двух словах не рассказать :)
...
Рейтинг: 0 / 0
16.01.2012, 00:08:11
    #37615573
ShSerge
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопросы машинно- независимой оптимизации кода
grasoff.netShSergeинлайнингесли щтото используется один раз (например, метод), то оно (например, тело метода) тупо вставляется туда, где есть его (например, метода) вызов
ShSergeдевиртуализацияэто мне в двух словах не рассказать :)
И на том спасибо. Обосрал меня на всю вселенную. Я тебе припомню, противный. ;)
...
Рейтинг: 0 / 0
16.01.2012, 00:24:59
    #37615582
Ruslan.Isbarov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопросы машинно- независимой оптимизации кода
grasoff.net , ну... мы оба вляпались. :)
...
Рейтинг: 0 / 0
16.01.2012, 00:30:57
    #37615585
Ruslan.Isbarov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопросы машинно- независимой оптимизации кода
ShSerge , дык это... Я там пояснил девиртуализацию :). А про vtable лучше в гугле гуглить :).
...
Рейтинг: 0 / 0
16.01.2012, 01:08:58
    #37615608
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопросы машинно- независимой оптимизации кода
Тут еще большой вопрос что мы подразумеваем под оптимизацией. Если п9 - удаление неиспользуемого кода.
как следствие ведёт к более рациональному использованию сегмента памяти под код, тогда у нас появляется
много-векторность в самом процессе оптимизации. Ну скажем Loop Unrolling увеличивает количество кода
но уменьшает доступную память под сегмент кода.

Есть эвристический ползунок


Код: java
1.
2.
3.
4.
Больше кода                                Меньше кода
быстрое исполнение                медленное исполнение
0%                     50%                         100%
[==========================|==========================]


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

Вобщем как-то так.
...
Рейтинг: 0 / 0
16.01.2012, 06:21:18
    #37615659
ZyK_BotaN
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопросы машинно- независимой оптимизации кода
ivanov-voidПриветствую!

Это может быть, например -

...

Минимизация преобразования типов в выражениях;

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

...

Если кто- то может расширить список не сразу очевидными приемами, думаю, это было бы полезной информацией.


- не вычислять аргументы функций, которые не понадобились для вычислений.
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Вопросы машинно- независимой оптимизации кода / 15 сообщений из 15, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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