Какая жесть. «Если не будем спамить мы, этим займутся наши конкуренты, а, значит, они нас сделают. Придется спамить.» — из ряда, если не буду мусорить вокруг, то всё равно кто-нибудь намусорит, то я себе разрешаю тоже мусорить. Это люди — паразиты, хоть и денег заработали, но это не оправдывает.
Совершенно верно. Но это рабочая необходимость получать оперативно информацию. А какая оперативность в рекламе? Чем отличается рекламное сообщение из push уведомления от того, что приходит мне на почту с этого же сайта? Кроме ненависти к такой рекламе, я думаю, разницы никакой.
Да, TheShock умеет «накинуть» :) Там же в комментах, вместо if-else
switch(true){
case isCondFirst():
value = valueFirst();
break;
case isCondSecond():
value = valueSecond();
break;
case isCondThird():
value = valueThird();
break;
default:
value = valueDefault();
}
В С/С++ получаем ошибку: «error: case label does not reduce to an integer constant» для С и «error: a function call cannot appear in a constant-expression» для С++.
Пробовалось под gcc 4.8.2 как для C99 стандарта, так и С11
Нет, push уведомления в принципе не для рекламы. Push — это то, что важное именно сейчас и на это необходимо обратить внимание. Представьте, чтобы ваша любимая ОС присылала вам каждую минуту уведомления: «я записала файлик в /tmp/a9r045.tmp», «а у меня освободилось немножко памяти и теперь свободно 3.843 ГБ памяти, вы не хотите оплатить подписку на супорт за 9.95$ в этом месяце?». Очень «ценная» информация, требующая безотлагательного вмешательства, правда? Не знаю что ещё для примера абсурдности привести… Например, позвонить в скорую помощь, спросить про погоду на завтра и что покушала сотрудница на обед во время перерыва.
if ( !some_cond )
func1();
// lines
if ( !other_cond )
func2();
Такой вариант? Если да, то делать остальные проверки после some_cond — лишняя трата времени, когда some_cond должен пропустить часть кода до label_skip_some. Вариант вычисления other_cond до проверки some_cond — не в этом примере, иначе был бы другой код.
Вынесение части кода в функции — такой вопрос тоже часто является аргументом спора. Но есть моменты, почему не стоит выносить: а) для lines нужно общее пространство видимости, когда используется один набор переменных; б) нет смысла выносить маленькие участки кода, которые используются только в одном месте, в отдельные функции — получается лишняя необходимость бегать по коду смотреть определение функций. в) вызов функций отнимает время — уже, наверное, не аргумент. Но иногда и стэк приходится экономить (когда на поток у тебя 64к стэка).
Можно писать
if ( some_cond )
{
// lines
if ( other_cond )
{
// lines
}
}
Но при увеличении вложенности большей 2, код становится плохо читаемым.
Единственным и самым «сильным» аргументов спорщиков против goto чаще всего в моей практике попадалось то, что это как раз «плохой тон» и goto портит программу, делая её запутанной. Без явного goto можно обойтись, но какой ценой?
«Моя компания веб-дизайна несравнима с другими. Мы гарантируем, что ваши продажи возрастут»
А вот так делать нельзя! Это антипаттерн маркетинга. Вы можете показать, что вы считаете своим преимуществом, но не возвышаться и тем более, не сравнивать себя с другими.
«Второе же говорит о том, что вы уверены в своем бизнесе, ваше предложение уникально и вы способны заработать деньги.»
Второе говорит о том, что вы ничерта из себя не представляете.
«Не сомневайтесь – вас не забудут.»
Забудут. Сразу же после прочтения слогана.
Только то, что написано по вашей ссылке в комментарии: «An open_basedir feature that doesn't actually guarantee that users can't open files outside of the specified base directory isn't useful.» Короче, я не очень понял Расмуса с его объяснением. Ну да, нельзя гарантировать, что файл не изменится, пока путь будет в кеше (это очевидно). Он типа не видит смысла в open_basedir, если каким-то образом решится аспект безопасности (наверное, про изменения вне кеша).
clang 3.5.0-4, x84_64.
$ seq 1000000 | time testN10000000
1.35user 0.06system 0:01.52elapsed 92%CPU (0avgtext+0avgdata 2724maxresident)k
0inputs+0outputs (0major+116minor)pagefaults 0swaps
iostream + nosync
10000000
1.47user 0.04system 0:01.59elapsed 95%CPU (0avgtext+0avgdata 2620maxresident)k
0inputs+0outputs (0major+119minor)pagefaults 0swaps
iostream
10000000
4.27user 0.07system 0:04.40elapsed 98%CPU (0avgtext+0avgdata 2600maxresident)k
0inputs+0outputs (0major+112minor)pagefaults 0swaps
iostream + ss + nosync
10000000
6.73user 0.06system 0:06.86elapsed 99%CPU (0avgtext+0avgdata 2624maxresident)k
0inputs+0outputs (0major+119minor)pagefaults 0swaps
iostream + ss
10000000
11.05user 0.13system 0:11.33elapsed 98%CPU (0avgtext+0avgdata 2572maxresident)k
0inputs+0outputs (0major+112minor)pagefaults 0swaps
iostream + ss2 + nosync
10000000
2.42user 0.03system 0:02.49elapsed 98%CPU (0avgtext+0avgdata 2620maxresident)k
0inputs+0outputs (0major+117minor)pagefaults 0swaps
iostream + ss2
10000000
5.51user 0.08system 0:05.62elapsed 99%CPU (0avgtext+0avgdata 2572maxresident)k
0inputs+0outputs (0major+110minor)pagefaults 0swaps
getchar + nosync
10000000
1.05user 0.09system 0:01.18elapsed 96%CPU (0avgtext+0avgdata 2592maxresident)k
0inputs+0outputs (0major+117minor)pagefaults 0swaps
getchar
10000000
1.09user 0.06system 0:01.23elapsed 93%CPU (0avgtext+0avgdata 2536maxresident)k
0inputs+0outputs (0major+111minor)pagefaults 0swaps
getchar unl + nosync
10000000
0.64user 0.08system 0:00.74elapsed 98%CPU (0avgtext+0avgdata 2588maxresident)k
0inputs+0outputs (0major+114minor)pagefaults 0swaps
getchar unl
10000000
0.70user 0.06system 0:00.87elapsed 87%CPU (0avgtext+0avgdata 2536maxresident)k
0inputs+0outputs (0major+111minor)pagefaults 0swaps
вариант stoi не скомпилился
а мне было лень исправлять
g++ 4.8.2
10000000
1.35user 0.06system 0:01.48elapsed 95%CPU (0avgtext+0avgdata 2664maxresident)k
168inputs+0outputs (1major+112minor)pagefaults 0swaps
iostream + nosync
10000000
1.47user 0.05system 0:01.58elapsed 96%CPU (0avgtext+0avgdata 2636maxresident)k
0inputs+0outputs (0major+122minor)pagefaults 0swaps
iostream
10000000
4.30user 0.07system 0:04.41elapsed 99%CPU (0avgtext+0avgdata 2540maxresident)k
0inputs+0outputs (0major+113minor)pagefaults 0swaps
iostream + ss + nosync
10000000
6.89user 0.07system 0:07.03elapsed 98%CPU (0avgtext+0avgdata 2564maxresident)k
0inputs+0outputs (0major+119minor)pagefaults 0swaps
iostream + ss
10000000
10.72user 0.09system 0:10.89elapsed 99%CPU (0avgtext+0avgdata 2544maxresident)k
0inputs+0outputs (0major+113minor)pagefaults 0swaps
iostream + ss2 + nosync
10000000
2.21user 0.04system 0:02.30elapsed 97%CPU (0avgtext+0avgdata 2636maxresident)k
0inputs+0outputs (0major+120minor)pagefaults 0swaps
iostream + ss2
10000000
5.37user 0.08system 0:05.50elapsed 99%CPU (0avgtext+0avgdata 2616maxresident)k
0inputs+0outputs (0major+115minor)pagefaults 0swaps
getchar + nosync
10000000
1.00user 0.06system 0:01.18elapsed 90%CPU (0avgtext+0avgdata 2640maxresident)k
0inputs+0outputs (0major+122minor)pagefaults 0swaps
getchar
10000000
0.94user 0.10system 0:01.15elapsed 90%CPU (0avgtext+0avgdata 2608maxresident)k
0inputs+0outputs (0major+113minor)pagefaults 0swaps
getchar unl + nosync
10000000
0.58user 0.08system 0:00.78elapsed 85%CPU (0avgtext+0avgdata 2636maxresident)k
0inputs+0outputs (0major+120minor)pagefaults 0swaps
getchar unl
10000000
0.58user 0.03system 0:00.64elapsed 97%CPU (0avgtext+0avgdata 2472maxresident)k
0inputs+0outputs (0major+109minor)pagefaults 0swaps
stoi + nosync
10000000
1.14user 0.02system 0:01.25elapsed 93%CPU (0avgtext+0avgdata 2636maxresident)k
0inputs+0outputs (0major+122minor)pagefaults 0swaps
stoi
10000000
4.09user 0.05system 0:04.25elapsed 97%CPU (0avgtext+0avgdata 2544maxresident)k
0inputs+0outputs (0major+113minor)pagefaults 0swaps
просто нечто.
Пробовалось под gcc 4.8.2 как для C99 стандарта, так и С11
А вот в php хорошо работает :)
что в итоге даст?
Такой вариант? Если да, то делать остальные проверки после some_cond — лишняя трата времени, когда some_cond должен пропустить часть кода до label_skip_some. Вариант вычисления other_cond до проверки some_cond — не в этом примере, иначе был бы другой код.
Вынесение части кода в функции — такой вопрос тоже часто является аргументом спора. Но есть моменты, почему не стоит выносить: а) для lines нужно общее пространство видимости, когда используется один набор переменных; б) нет смысла выносить маленькие участки кода, которые используются только в одном месте, в отдельные функции — получается лишняя необходимость бегать по коду смотреть определение функций. в) вызов функций отнимает время — уже, наверное, не аргумент. Но иногда и стэк приходится экономить (когда на поток у тебя 64к стэка).
Можно писать
Но при увеличении вложенности большей 2, код становится плохо читаемым.
либо же
А вот так делать нельзя! Это антипаттерн маркетинга. Вы можете показать, что вы считаете своим преимуществом, но не возвышаться и тем более, не сравнивать себя с другими.
«Второе же говорит о том, что вы уверены в своем бизнесе, ваше предложение уникально и вы способны заработать деньги.»
Второе говорит о том, что вы ничерта из себя не представляете.
«Не сомневайтесь – вас не забудут.»
Забудут. Сразу же после прочтения слогана.