![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| chaos |
|
||||||
![]() Серийный программист ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2979 Регистрация: 7.7.2004 Где: Екатеринбург Репутация: 1 Всего: 44 |
День добрый! те вечер
Вот потихоньку изучаю Java и вот возник вопрос: отпимизирует(отключает проверку границ) ли JVM циклы работающие с массивами. я прочитал что в отличии от С++ (тут нет никаких проверок)
всегда связано с проверкой границ массива, что с одной стороны правельно, но с другой может снижать скорость работы так вот, будет ли отличаться код по скорости:
вроде как во 2ом примере можно проверку границ отключить ибо бессмысленно проверять, тк мы "никада" не выйдем, если конечно не сам дурак Заранее благодарен! ЗЫ тут глянул в электронную версию книги Эклея 4ое издание(я учусь по 3ум - тк бумажный вариант), увидел что появился вариант обхода массивов for( : ),но про это пока ничего не знаю ЗЫЫ не пинайте если тема подымалаь, чот не нашел Добавлено @ 18:34 ЗЫЫЫ а есть ли литература в которой описываются тонкости различные по яве? те всякого рода оптимизация, штучки дрючки? Это сообщение отредактировал(а) chaos - 21.3.2009, 21:17 |
||||||
|
|||||||
| SoulKeeper |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 375 Регистрация: 14.1.2007 Где: Ukraine, Lviv. Репутация: 11 Всего: 15 |
Условие i < MyObjectArray.length проверяется при каждой итерации.
Для массивов єто не существенно, но если бы там был какой-то метод который бы тянул данные с БД (к примеру), то это заметно бы било по производительности. В идеале:
|
|||
|
||||
| chaos |
|
||||||||
![]() Серийный программист ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2979 Регистрация: 7.7.2004 Где: Екатеринбург Репутация: 1 Всего: 44 |
ага, понятно вроде стало. накидал такой пример для проверки:
результат:
тогда конечно логичней(если размер объекта не изменяется каким-то образом) вынести getSize подобный метод за пределы цикла что бы вызвать его один раз. Но вот касательно контейнеров(те до контейнеров я еще не дошел, касательно массивов) length как я понимаю открытое поле класса? не знаю есть ли в яве понятие свойства как например в Python'e Это сообщение отредактировал(а) chaos - 22.3.2009, 17:43 |
||||||||
|
|||||||||
| Vitaly333 |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 220 Регистрация: 6.11.2006 Где: Volgograd Репутация: 2 Всего: 2 |
А можно ли как - нибудь включить поддержку SSE для циклов в Java или в JVM это уже есть?
|
|||
|
||||
| Kangaroo |
|
|||
|
AA - Aussie Animal ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2042 Регистрация: 7.10.2006 Где: US Репутация: 21 Всего: 104 |
Effective Java, Bloch'a ? Да Нет такого. Добавлено через 1 минуту и 53 секунды ? -------------------- Lost.... |
|||
|
||||
| chaos |
|
|||
![]() Серийный программист ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2979 Регистрация: 7.7.2004 Где: Екатеринбург Репутация: 1 Всего: 44 |
угу, ченить в этом роде Спасибо! ЗЫ все больше и больше мне нравится ява |
|||
|
||||
| Shaggie |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 570 Регистрация: 21.12.2006 Где: outer space Репутация: 4 Всего: 72 |
||||
|
||||
| Kangaroo |
|
|||
|
AA - Aussie Animal ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2042 Регистрация: 7.10.2006 Где: US Репутация: 21 Всего: 104 |
-------------------- Lost.... |
|||
|
||||
| Vitaly333 |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 220 Регистрация: 6.11.2006 Где: Volgograd Репутация: 2 Всего: 2 |
Ну допустим на Windows x86? |
|||
|
||||
| SoulKeeper |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 375 Регистрация: 14.1.2007 Где: Ukraine, Lviv. Репутация: 11 Всего: 15 |
http://java.sun.com/j2se/1.4.2/1.4.2_whitepaper.html#7 Если в JVM реализована поддержка SSE - то будет SSE, если нет - то не будет. Реализаций JVM десятки, за всеми не угонишся. Это сообщение отредактировал(а) SoulKeeper - 23.3.2009, 14:56 |
|||
|
||||
| Vitaly333 |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 220 Регистрация: 6.11.2006 Где: Volgograd Репутация: 2 Всего: 2 |
Ну например для 1.6.06 под Winx86 как узнать? Может есть какой - нибудь соответствующий ключик? И вы уверенны что если в JVM реализована поддержка SSE то она включена по умолчанию? |
|||
|
||||
| ivg |
|
|||
![]() Autonomous R&D ![]() ![]() Профиль Группа: Участник Сообщений: 686 Регистрация: 8.2.2006 Где: Екатеринбург Репутация: 33 Всего: 81 |
Vitaly333, а какая связь между циклами, как элементами управления ходом выполнения программы, и пакетными вычислениями с плавающей точкой?
|
|||
|
||||
| Vitaly333 |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 220 Регистрация: 6.11.2006 Где: Volgograd Репутация: 2 Всего: 2 |
Связь чисто математическая. В интенсивных вычислениях с плавающей точкой (например перемножение двух вещественных матриц и пр.) SSE позволяет получить выйгрыш в скорости за счет выполнения сразу нескольких умножений за такт. Если такие вычисления необходимо реализовать на Java было бы не плохо использовать эту технологию. |
|||
|
||||
| ivg |
|
|||
![]() Autonomous R&D ![]() ![]() Профиль Группа: Участник Сообщений: 686 Регистрация: 8.2.2006 Где: Екатеринбург Репутация: 33 Всего: 81 |
||||
|
||||
| Vitaly333 |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 220 Регистрация: 6.11.2006 Где: Volgograd Репутация: 2 Всего: 2 |
И всё таки хотелось бы узнать об различных оптимизациях, которые можно включать и выключать в JVM, особенно относящихся к циклам. Наверняка есть множество соответствующих ключей, особенно у серверной версии HotSpot (выведение кода из тела циклов,развертка цикла, удаление проверки диапазона и.т.д.). Хочется поигратся с различными настройками... где это всё посмотреть?
|
|||
|
||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |