Отказ от кастинга
Релиб
Форумы       Участники    Календарь    Кто он-лайн?
Добро пожаловать, гость ( Вход | Регистрация )
        


««12

Отказ от кастинга Expand / Collapse
Автор
Сообщение
30.11.2006 14:18
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 29.04.2007 19:12
Сообщ.: 548, Visits: 5 276
Danissimo (29.11.2006)
Разрешите поделиться мыслями об узких местах. Не помню, кто сказал, что преобразование типов может выполняться в узком месте, и в этом случае было бы не лишним написать свой контейнер. Хочу возразить: писать свою коллекцию только для того, чтобы избавиться от приведения типов -- это все равно, что узкое место переписать на ассемблере. Нужно? Мой ответ -- нет. Знаю все возражения. Но также знаю, что как не переписывай квадратичный алгоритм, так он квадратичным и останется. Коэффициент может сделать его более крутым или пологим. Не более. Так что, я считаю, что преобразование типов проблемой стать не может. Следовательно, потребности переписывать возникать не должно.


Коллекции в Java общего назначения. Улавливаешь?
Сообщ. #908255
30.11.2006 16:22
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 02.02.2008 19:48
Сообщ.: 480, Visits: 5 178
Метафоры какие-то, намеки. Ничего не понимаю. :)
Сообщ. #908266
03.12.2006 20:13


Forum Member

Forum MemberForum MemberForum MemberForum MemberForum MemberForum MemberForum MemberForum Member

участник
Last Login: 13.11.2007 15:00
Сообщ.: 47, Visits: 400
Хочу внести свои пять копеек. Во-первых, кастинг действительно отъедает порядка пяти процентов (результат воспроизводится простыми тестами). Во-вторых, сия операция (по результатам моего теста) длится 3 наносекунды.

Теперь вопрос: много ли это? И еще один вопрос: много ли это для Java?
Например, операция деления двух long'ов примерно в 3 раза длительнее.
Сообщ. #908369
04.12.2006 12:58
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 30.03.2008 17:43
Сообщ.: 247, Visits: 2 370
Собственно непонятно о чем спор. Если место действительно узкое и есть на это дело жалобы от пользователей и оптимизировать больше ну никак нечего, то почему бы и не написать свою коллекцию. Если же просто не дает покоя мысль о потере пяти процентов, то пожалуй не стоит. Хотя при избытке свободного времени можно и в последнем случае попробовать.
Сообщ. #908403
04.12.2006 17:04
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 29.04.2007 19:12
Сообщ.: 548, Visits: 5 276
wind (03.12.2006)
...длится 3 наносекунды.


Вот это +1. До наносекунд вычислил. Вот только как?
Сообщ. #908427
04.12.2006 17:27
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 30.03.2008 17:43
Сообщ.: 247, Visits: 2 370
просто некоторые люди мыслят быстрее :)
Сообщ. #908434
05.12.2006 0:09


Forum Member

Forum MemberForum MemberForum MemberForum MemberForum MemberForum MemberForum MemberForum Member

участник
Last Login: 13.11.2007 15:00
Сообщ.: 47, Visits: 400
paradise (04.12.2006)
Вот это +1. До наносекунд вычислил. Вот только как?

Всё просто: java.lang.System.nanoTime()
J2SE 1.5+

А вообще-то не обязательно наличие специального метода. Запустить длиннющий цикл, полученное время поделить на число итераций. Разумеется, это будет "грязный" результат, но для сравнительных тестов - в самый раз.
Сообщ. #908456
05.12.2006 17:54
Forum Guru

Forum GuruForum GuruForum GuruForum GuruForum GuruForum GuruForum GuruForum Guru

участник
Last Login: 13.12.2006 13:36
Сообщ.: 53, Visits: 535
Если уж озобачиваться производительностью при работе с List, Set, Map, Integer, Double и прочим, то ИМХО лучше стоит посмотреть в эту сторону - http://javolution.org/
Использование этой либы даст прирост производительности гараздо больший чем простой отказ от кастинга.
Сообщ. #908528