powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Вопросы машинно- независимой оптимизации кода
15 сообщений из 15, страница 1 из 1
Вопросы машинно- независимой оптимизации кода
    #37615355
Фотография ivanov-void
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Приветствую!

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

...

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

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

...

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

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

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

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

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

Под машинно- независимой имеется в виду оптимизация на уровне входного языка.
...
Рейтинг: 0 / 0
Вопросы машинно- независимой оптимизации кода
    #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
Вопросы машинно- независимой оптимизации кода
    #37615558
Фотография grasoff.net
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ruslan.Isbarovкоторые смог вспомнитьне там работаешь )
...
Рейтинг: 0 / 0
Вопросы машинно- независимой оптимизации кода
    #37615565
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ruslan.Isbarov,

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

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


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


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

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

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

...

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

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

...

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


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


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