|
Java форум JavaTalks форум программистов
|
|
|
|
| Предыдущая тема :: Следующая тема |
| Автор |
Сообщение |
ТокиТори : 1079 Завсегдатай
|
Янв 29, 2012 18:08 |
|
|
| lagi писал(а): |
| Спасибо, все работает. Интересно вот только как это будет по производительности по сравнению с case? |
У Вас есть возможность сравнить быстродействие этих реализаций Многие гуру советуют обходить switch стороной, если возможно, конечно. |
|
|
|
 |
rfq : 218 Новичок
|
Янв 29, 2012 18:10 |
|
|
| ТокиТори писал(а): |
| Многие гуру советуют обходить switch стороной, если возможно, конечно. |
пруфлинк? |
|
|
|
 |
ТокиТори : 1079 Завсегдатай
|
Янв 29, 2012 18:33 |
|
|
|
|
|
|
 |
rfq : 218 Новичок
|
Янв 29, 2012 18:51 |
|
|
Вот именно что срач, а где мнение гуру?
К тому же там обсуждали String switch, а здесь switch по непрерывному диапазону аргументов. |
|
|
|
 |
ТокиТори : 1079 Завсегдатай
|
Янв 29, 2012 18:57 |
|
|
| Тема, конечно, называется "String Switch ( ИЗВРАЩЕНИЯ )", но если почитаете ее, то увидите очень много сообщений про привычный свитч, а также умные мысли по использованию / не использованию данной конструкции. |
|
|
|
 |
rfq : 218 Новичок
|
Янв 29, 2012 19:02 |
|
|
| ТокиТори писал(а): |
| Тема, конечно, называется "String Switch ( ИЗВРАЩЕНИЯ )", но если почитаете ее, то увидите очень много сообщений про привычный свитч, а также умные мысли по использованию / не использованию данной конструкции. |
Глупых мыслей там еще больше, чем умных. А поскольку новичку отличить умные мысли от глупых сложно, то я бы не рекомендовал неопытным программистам читать этот топик. |
|
|
|
 |
lagi : 17 Новичок
|
Фев 03, 2012 8:37 |
|
|
Сделал такое умозаключение )
В среде разработки Нетбинс , сделал анализ загрузки ЦПУ по классам.
Вариант с интерфейсом очень долго отрабатывает.
Сюдя по всему , потому что каждый раз создаётся экземпляр класса
| Код: |
IMM[0] = new Worker.subscriberServicesIndicator();
IMM[1] = new Worker.callIdentificationNumber();
IMM[2] = new Worker.recordSequenceNumber();
IMM[3] = new Worker.typeOfCallingSubscriber(); |
результат
Потом обвернул это в case
| Код: |
case 0: IMM[0] = new Worker.subscriberServicesIndicator();
case 1: IMM[1] = new Worker.callIdentificationNumber();
case 2: IMM[2] = new Worker.recordSequenceNumber();
case 3: IMM[3] = new Worker.typeOfCallingSubscriber();
|
Результат уже лучше
Ну и в конечном итоге оставил просто case , переделал так как было изначально.
| Код: |
case 0:
return Worker.subscriberServicesIndicator(s);
case 1:
return Worker.callIdentificationNumber(s);
case 2:
return Worker.recordSequenceNumber(s);
case 3:
return Worker.typeOfCallingSubscriber(s);
|
Самый лучший результат
 |
|
|
|
 |
nullvoid : 505 Постоянный посетитель Откуда: Красноярск
|
Фев 03, 2012 9:00 |
|
|
Неожиданный результат правда?
Оказывается просто вернуть из метода значение результата, намного быстрее, чем запихать это значение в массив
Только вот в последнем варианте есть параметр s который приходит откуда-то снаружи, и подозреваю что на формирование этого параметра тратится дополнительное время. Возможно я не прав, так как читал тему по диагонали.
Что мне ещё нравится, так это то что происходит отказ от полиморфизма из-за разницы с сотые секунды. И мы хороним ООП =)
Хотя я на 1000% уверен, что у вас в соседнем куске кода происходит потрясающе не эффективная работа кода, например с файлами, базой данных и т.д.
Мой совет вам: рано вам ещё мерить производительность, надо учиться писать правильный код _________________ http://LinguaLeo.ru/r/8b3o08 |
|
|
|
 |
nullvoid : 505 Постоянный посетитель Откуда: Красноярск
|
Фев 03, 2012 9:15 |
|
|
Перечитал тему ещё раз, понял, что по сути вопрос разницы быстродействия между выборкой из массива и возвращения результата свитчем.
Так что на предыдущим мой пост можно забить  _________________ http://LinguaLeo.ru/r/8b3o08 |
|
|
|
 |
lagi : 17 Новичок
|
Фев 03, 2012 12:18 |
|
|
| Цитата: |
| Мой совет вам: рано вам ещё мерить производительность, надо учиться писать правильный код |
Я с Вами согласен
Так вот как раз меряя производительность и выявляя места где наибольшая задержка - благодаря IDE, и думаешь как же сделать так , чтобы было быстрее.
Ну а вообще есть прикол про написание кода :
Алгоритм не член, чем короче - тем лучше  |
|
|
|
 |
|
|
|