Pull to refresh

Comments 9

Скажите, а вы уверены, что в третьем примере ошибка дублирования условий, а не ошибка порядка строк?
Пример больше подходит для ситуации когда задан неверный порядок обхода условий, хотя и описываемая ошибка естественно присутствует.

Добрый день. Да, если возвращается одна и та же proxy (или как в нашем случае, DIRECT). Прошу заметить ещё раз, что тут есть ещё более грубая ошибка с проверкой по host, а не resolved address.

Вывод: как ни пиши — все равно не уйдешь за пределы погрешности и без того мизерной величины.
Спасибо за комментарий, но я с Вами не могу согласиться. Вопрос не только в производительности, но в первую очередь в правильности применения функций, обратите на это внимание, пожалуйста.
Зачем у вас во многих примерах else if? Вы же всё равно используете return.

В таблицах тестов вы ничего не напутали? Сначала вы утверждаете, что shExpMatch — очень медленная и вместо неё лучше host ==, а из таблиц видно, что для хрома разница несущественна, а для Firefox — shExpMatch работает значительно быстрее.

Ну и вообще, тесты странные. Ваш «оптимальный» вариант возвращает один единственный прокси, а остальные варианты выбирают один из трёх
Спасибо за Ваш комментарий, давайте по-порядку:

>>Зачем у вас во многих примерах else if? Вы же всё равно используете return.
Примеры взяты из реальных кейсов внедрения, так что вопрос очень правильный и я его тоже задавал коллегам: зачем использовать else if, если мы в любом случае возвращаем значение по return? Смотрите пример десятый, пожалуйста.

>>В таблицах тестов вы ничего не напутали?
Нет, все абсолютно верно. И именно потому см. Disclaimer, повторю, тесты лучше провести повторно, самостоятельно, потому как они могут быть спорные для разных случаев использования. Я крайне рекомендую воспользоваться преимуществами jsperf и при наличие аккаунта на github повторить тесты или даже модифицировать их, убедиться в преимуществах тех или иных функций самостоятельно.

>>Сначала вы утверждаете, что shExpMatch — очень медленная
К сожалению, совсем не могу согласиться с этим комментарием. «очень медленная» — это слишком ультимативное высказывание, я такого не писал, смотрите внимательнее, пожалуйста, пример первый. Речь идёт именно о первой строке кода с "*" и разницы в 1% в моём случае. И ещё раз, проблема даже не в оптимальности функции, а в уместности её применения, что значительно важнее.

>>Ваш «оптимальный» вариант возвращает один единственный прокси, а остальные варианты выбирают один из трёх
Если речь идёт о примере десятом, то опять же, оптимальной будет dnsDomainIs, который возвращает один из трех, а не единственный.
> Если речь идёт о примере десятом, то опять же, оптимальной будет dnsDomainIs, который возвращает один из трех, а не единственный
Вы же сами пишете «оптимальным будет использование OR условия»
В общем случае да, dnsDomainIs более оптимален. Но если говорить конкретно про замену конструкции if/else if/else в десятом примере, то не всегда можно использовать более оптимальную функцию dnsDomainIs. Если требуется оптимизировать условия, то для FF в моём случае OR будет оптимальнее чем else if. Скриншот же приведён для всех вариантов, видимо он и смущает Вас.
Ну и добавлю, для полного понимания, если Вы не можете использовать OR (т.к. результат только один return) и нет возможности задействовать dnsDomainIs, я бы задействовал блок с именем «host» для обоих браузеров.
Sign up to leave a comment.