All streams
Search
Write a publication
Pull to refresh
14
0
Alex Nekipelov @nekipelov

программист

Send message
Почитал комментарии и очень удивлен. Я один считаю, что секретный вопрос не должен иметь ничего общего с ответом? В смысле, что ответ на «девичья фамилия матери» никак не эта самая фамилия, а что-либо другое.
Это арифмометр. Феликс тоже арифмометр российского производства, но это не он.
Почленное копирование, не побитовое. Так что зря вы всю жизнь писали пользовательские конструкторы.
Google Chrome 18.0.1025.151, также предлагает поставить silverlight. На Linux это сделать затруднительно.
Почему неизвестно? Памяти должно быть достаточно для создания bad_alloc и все. И конечно же обработка такого исключения не должна приводить к очередной попытке выделения памяти, зато можно попытаться ее освободить. И естественно, что резервирование осуществляется при запуске, а не в момент нехватки памяти.

Какой смысл было бы вводить исключения, если его нельзя будет поймать и обработать? Ведь это затем и придумано. И еще раз повторяю, что там сидят не дураки, а опытные программисты.

В реальной жизни к приложениям бывают разные требования. Иногда одно из них — устойчивость к ошибкам. Пусть не получится выполнить нужную функцию из-за нехватки памяти, но падать при этом нельзя.
Компилятор обязан это сделать, это требование стандарта языка C++. Ведь в комитете стандартизации не дураки сидят и понимают, что для генерации исключения требуется память.
> ибо кинуть исключение это создать объект, а где его создать когда память закончилась?

Компилятор обязан резервировать память, чтобы ее хватило на такое исключение. И нехватка памяти совершенно нормальная ситуация, с которой сталкивается каждый программист, пишущий что-то более-менее сложное.
Если память можно докупить, то точно также можно докупить и сервера. Так зачем вообще заботиться об эффективности и использовать компилируемый язык? :-)
Извиняюсь, промахнулся. Это ответ на habrahabr.ru/post/141426/#comment_4733239
Меньшее потребление памяти. В контексте VPS, облаке или огромном количестве клиентов, память играет важную роль.
Меньшее потребление памяти. В контексте VPS, облаке или огромном количестве клиентов, память играет важную роль.
А имеет ли смысл использование подобного кода в языке C учитывая, что там нет деструкторов? Ведь мы получим утечки ресурсов, а это не всегда допустимо.
Ведь rps зависит от машины, на которой запускается тест. У автора все-таки Celeron. На моей машине (AMD Phenom X4 940) этот пример выдает 12000 rps, что почти соответствует указанной разнице в 2-3 раза в сравнении с программой на C или C++ (моя программка на C++ выдает 28000 rps, как и nginx). В общем не так много, как хотелось бы, но и не так уж мало.
Тест с тысячей запросов, это не серьезно. Для получения корректных данных их должно быть хотя-бы 50 тысяч. И вот, что любопытно:

taskset 1 go run habr.go

taskset 2 ab -c 100 -n 100000 http://127.0.0.1:3000/


дает 12337.72 запр/сек, а вот такое:

go run habr.go

taskset 2 ab -c 100 -n 100000 http://127.0.0.1:3000/


грузит на 50% все мои 4 ядра и дает всего 3821.04 запр/сек.

Видимо с параллельностью там все еще не так хорошо, как хотелось бы.
Помимо мобильной версии можно воспользоваться расширениями вроде iReader или Readability. Но конечно изобретение велосипедов повышает опыт и самообразование :-)
> Хоть сам на C практически пишу

Практические НЕ пишу
Точнее discount это не библиотека, а утилита. Это я переделал и использую как библиотеку.
> Вам для справки: такие конструкции — это K&R C; начиная с C89 типы
> переменных указываются в списке параметров функции.

Это я знаю. Но я говорю о своих первых впечатлениях о языке C. Не смотря на С89 указанный код корректен до сих пор и даже встречается в исходниках. Вот например из очень неплохой библиотеки discount:

/* helper function for php markdown extra footnotes; allow the user to
 * define a prefix tag instead of just `fn`
 */
static char *
p_or_nothing(p)
MMIOT *p;
{
    return p->ref_prefix ? p->ref_prefix : "fn";
}


Ну и на самом то деле, разумеется я не испытываю никакой ненависти по отношению к языку C. Это был ответ на пост, да и не ожидал я вообще инвайта. Просто проснулся в 3 утра и захотелось что-нибудь почитать, а потом и написать. Хоть сам на C практически пишу, зато постоянно использую libc или библиотеки написанные на C :-)
По моему, вполне нормально работает. Чуть медленее, чем на реальной машине. Но это больше заметно при использовании VC2010. А VC6 летает. Распараллеливать сборку она все равно не умеет, поэтому IO APIC отключен и доступен только один процессор. Если включить IO APIC, будет чуть хуже.
Почему фанат? По моему, первая любовь всегда в прошлом остается. Так что пусть покоиться с миром…

Information

Rating
Does not participate
Location
Москва и Московская обл., Россия
Registered
Activity