![]() |
Модераторы: LSD, AntonSaburov Страницы: (80) « Первая ... 5 6 [7] 8 9 ... Последняя »
( Перейти к первому непрочитанному сообщению ) |
![]() ![]() ![]() |
|
Domestic Cat |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5452 Регистрация: 3.5.2004 Где: Dallas, US Репутация: 50 Всего: 172 |
Данную программу можно "ускорить" на 30%(на Маке; на Wиндах может быт меньше). Как?:
Mozhno добавлять поля, умножение, деление и кастинг. PS. Vnutri ciklov nichego ne menjat'. Tochnost' derzhat' do 3x znakov posle zapjatoj. Это сообщение отредактировал(а) Domestic Cat - 7.7.2004, 15:59 -------------------- |
|||
|
||||
AntonSaburov |
|
|||
![]() Штурман ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5658 Регистрация: 2.7.2002 Где: Санкт-Петербург Репутация: 51 Всего: 118 |
Вот такой вариант у меня получился
![]() При этом скорость выросла на вскидку раза в 4-5 под Виндой.
|
|||
|
||||
Domestic Cat |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5452 Регистрация: 3.5.2004 Где: Dallas, US Репутация: 50 Всего: 172 |
![]() Более обwиu вариант
4-5 raz - WOW Это сообщение отредактировал(а) Domestic Cat - 7.7.2004, 16:10 -------------------- |
|||
|
||||
AntonSaburov |
|
|||
![]() Штурман ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5658 Регистрация: 2.7.2002 Где: Санкт-Петербург Репутация: 51 Всего: 118 |
Через java -Xprof Test получил 1.9 и 11.6 секунд. |
|||
|
||||
Domestic Cat |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5452 Регистрация: 3.5.2004 Где: Dallas, US Репутация: 50 Всего: 172 |
java -Xprof Test
Удобная штука - показывает сколько времени потрачено на выполнение, плюс на каждый метод отдельно (в %) // Pochti 10 raz ![]() ![]() ![]() Это сообщение отредактировал(а) Domestic Cat - 7.7.2004, 17:17 -------------------- |
|||
|
||||
DarkDS |
|
||||
Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 748 Регистрация: 6.5.2003 Где: Таллинн, Эстония Репутация: 11 Всего: 16 |
Так "механизм плюгинов" как раз такой и есть ![]() |
||||
|
|||||
Domestic Cat |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5452 Регистрация: 3.5.2004 Где: Dallas, US Репутация: 50 Всего: 172 |
ОК
![]() 1. Kstati: известно что есть две части хипа: "молодоu" хип (young heap) и "старыu" (tenure heap). Как узнать сколько раз в течение времени выполнения был запушен сборшик мусора, сколько он собрал на каждоu части хипа, и сколько времени он потратил? 2. Сборка мусора в старом хипе длится на 1-2 порядка дольше. Если программа создаeт много обeктов (3D шутер скажем), то это будет давать лаг. Как минимизировать сборку мусора на старом хипе? -------------------- |
|||
|
||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
Как создать экземпляр класса в Runtime я представляю, у меня вопрос в том как это класс загрузить если он не был прописан в CLASSPATH и как определить тот ли это класс что я ищу (реализует ли он необходимый интерфейс) не загружая этот класс.
Со воторым вопросом можно разобраться потребовав прописать в mainfest нужный класс. Но вот как сделать так чтобы SystemClassLoader загружал файлы из данного jar? Если использовать вариант Domestic Cat с URLClassLoader, то придется предварительно грузить все классы из jar-а, иначе при запуске плагина он может не обнаружить некоторых классов. Это не желательно по тому что плагин может и не использоваться, кроме как получить его имя и показать новый пункт меню, и тогда все эти классы не нужны. У меня вопрос такой Domestic Cat написал программу которая показывает все Thread-ы, созданные "нормальным" образом, а как ее можно обмануть? Т.е. запустить в той же JVM Thread так чтобы она его не увидела? -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
Domestic Cat |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5452 Регистрация: 3.5.2004 Где: Dallas, US Репутация: 50 Всего: 172 |
LSD, может тебе в сторону Avalon посмотреть (http://avalon.apache.org/) ? Я не работал с ним, но говорят что-то подобное
делает:
Nu а чтобы обмануть программу, нужно написать сабкласс ThreadGroup и сделать override метода activeCount()
-------------------- |
||||
|
|||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
Хорошее решение я пошел более радикальным путем, без субклассов.
-------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
Domestic Cat |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5452 Регистрация: 3.5.2004 Где: Dallas, US Репутация: 50 Всего: 172 |
А каким, интересно? ![]() -------------------- |
|||
|
||||
DarkDS |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 748 Регистрация: 6.5.2003 Где: Таллинн, Эстония Репутация: 11 Всего: 16 |
Эта... Кстати... Создай по этому тему... тама и пообсуждаем ![]() |
|||
|
||||
Domestic Cat |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5452 Регистрация: 3.5.2004 Где: Dallas, US Репутация: 50 Всего: 172 |
Опять флууудим-с ?
![]() Добавлено @ 20:47 Вопрос про хип не закрыт ![]() Это сообщение отредактировал(а) Domestic Cat - 7.7.2004, 20:46 -------------------- |
|||
|
||||
LSD |
|
||||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
Я использовал приватный конструктор ThreadGroup. Хотя тут могут быть проблемы с SecurityManager.
Я пока гляну на Avalon, а там если будут вопросы или не понравиться создам. -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
||||
|
|||||
Domestic Cat |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5452 Регистрация: 3.5.2004 Где: Dallas, US Репутация: 50 Всего: 172 |
1. Чтобы узнать о том, что делал сборщик мусора (=gc), нужно запустить программу с
опцией -verbose:gc Типичный результат будет таким:
(если сборки мусора не было, то ничего он не выдаст конечно) GC обозначает сборку на молодом хипе, Full GC - на старом; далее идет : [размер хипа до -> размер после (общий размер хипа), вреня потраченное на сборку] Как видим, сборка на старом хипе заняла в 10 раз больше времени чем на молодом - правда комп был в плохом настроении, обычно в этом же шутере сборка длится в 10 раз быстрее на обеих частях хипа. Более подробную инфу осборке можно получить так: -XX:+PrintGCDetails:
DefNew соответствует молодому хипу, Tenured - старому. Длительность сборки зависит от размера хипа, поскольку молодой хип меньше, то и убирается он быстрее. Все созданные обьекты попадают сначала на молодой хип; если в течение некоторого времени они все еще нужну, они перемещаются на старый хип. -------------------- |
||||
|
|||||
![]() ![]() ![]() |
Правила форума "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. |