Обычная версия
Java форум JavaTalks
форум программистов

Поиск   Пользователи   Группы   Регистрация 
 Профиль   Личные сообщения 

 Вход 

Хранение методов в массиве
Список форумов
 ->  Коллекции (Java Collection Framework)


На страницу Пред.  1, 2 
Начать новую тему 
Предыдущая тема :: Следующая тема  
Автор Сообщение
ТокиТори : 1079
Завсегдатай

СообщениеЯнв 29, 2012 18:08 
Ответить с цитатой
lagi писал(а):
Спасибо, все работает. Интересно вот только как это будет по производительности по сравнению с case?

У Вас есть возможность сравнить быстродействие этих реализацийSmile Многие гуру советуют обходить 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);

Самый лучший результат Smile
К началу Посмотреть профиль Отправить личное сообщение
nullvoid : 505
Постоянный посетитель
Откуда: Красноярск

СообщениеФев 03, 2012 9:00 
Ответить с цитатой
Неожиданный результат правда? Very Happy
Оказывается просто вернуть из метода значение результата, намного быстрее, чем запихать это значение в массив

Только вот в последнем варианте есть параметр s который приходит откуда-то снаружи, и подозреваю что на формирование этого параметра тратится дополнительное время. Возможно я не прав, так как читал тему по диагонали.

Что мне ещё нравится, так это то что происходит отказ от полиморфизма из-за разницы с сотые секунды. И мы хороним ООП =)
Хотя я на 1000% уверен, что у вас в соседнем куске кода происходит потрясающе не эффективная работа кода, например с файлами, базой данных и т.д.

Мой совет вам: рано вам ещё мерить производительность, надо учиться писать правильный код
_________________
http://LinguaLeo.ru/r/8b3o08
К началу Посмотреть профиль Отправить личное сообщение Посетить сайт автора ICQ Number
nullvoid : 505
Постоянный посетитель
Откуда: Красноярск

СообщениеФев 03, 2012 9:15 
Ответить с цитатой
Перечитал тему ещё раз, понял, что по сути вопрос разницы быстродействия между выборкой из массива и возвращения результата свитчем.
Так что на предыдущим мой пост можно забить Smile
_________________
http://LinguaLeo.ru/r/8b3o08
К началу Посмотреть профиль Отправить личное сообщение Посетить сайт автора ICQ Number
lagi : 17
Новичок

СообщениеФев 03, 2012 12:18 
Ответить с цитатой
Цитата:
Мой совет вам: рано вам ещё мерить производительность, надо учиться писать правильный код


Я с Вами согласен Smile
Так вот как раз меряя производительность и выявляя места где наибольшая задержка - благодаря IDE, и думаешь как же сделать так , чтобы было быстрее.

Ну а вообще есть прикол про написание кода :
Алгоритм не член, чем короче - тем лучше Smile
К началу Посмотреть профиль Отправить личное сообщение
 
Начать новую тему  Ответить на тему
Страница 2 из 2
На страницу Пред.  1, 2
Список форумов
 -> Коллекции (Java Collection Framework)


 
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Java and all Java-related trademarks and logos are trademarks or registered trademarks of Oracle Corporation in the United States and other countries.
Это сайт не относится к фирме Oracle Corporation и не поддерживается ею.

© 2006-2010 www.javatalks.ru: форум java программистов
Используется скрипт phpBB © 2001, 2010 phpBB Group

Хостинг от bizname.ru