avva: (Default)
[personal profile] avva
Три строчки кода -> работа выполняется в три раза быстре -> вместо тысячи процессов ее будут делать триста.

(мемоизация вызова тяжелой функции)

Правда, я все равно ненавижу компьютеры. И C++.

Date: 2009-06-06 06:28 pm (UTC)
From: [identity profile] dmarck.livejournal.com
Ого. Супер результат, кстати.

Date: 2009-06-06 07:06 pm (UTC)
From: [identity profile] arcbishop.livejournal.com
Три гвоздя -> башмаки прослужат в три раза дольше -> вместо трех недель развалятся через три месяца.

Правда, я все равно ненавижу сапоги. И обувное ремесло.

Date: 2009-06-06 07:15 pm (UTC)
From: [identity profile] alta-voce.livejournal.com
Правда, я все равно ненавижу компьютеры. И C++.

О, наконец мы сходимся во мнениях.

Date: 2009-06-06 07:20 pm (UTC)
From: [identity profile] clevernewt.livejournal.com
А уж как вас начальство наверное ненавидит.
Вы же им втрое поводы сократили для втирания очков их начальству.

Date: 2009-06-06 07:35 pm (UTC)
From: [identity profile] lelia-br.livejournal.com
а кокой язык любите?

Date: 2009-06-06 08:18 pm (UTC)
From: [identity profile] ygam.livejournal.com
Я вчера и позавчера переписал одну компоненту так, что она выполняется в разы быстрее, и при исполнении требует вдвое меньше памяти.

Date: 2009-06-06 08:48 pm (UTC)
From: (Anonymous)
OOM killer уже выехал

Date: 2009-06-06 08:50 pm (UTC)
From: (Anonymous)
теперь логично будет заменить процессы на потоки, и кэш сделать общим

Date: 2009-06-06 09:08 pm (UTC)
From: [identity profile] dimrub.livejournal.com
Я плюсы раньше тоже не любил. Потом оказалось, что я их просто толком не знал. Теперь не то, чтобы очень люблю, но уважаю.

Date: 2009-06-06 09:45 pm (UTC)
From: (Anonymous)
переписал qacct. Оригинал удивительно неудобен

merrick Kennebunk

Парадокс

Date: 2009-06-06 10:29 pm (UTC)
From: [identity profile] vodianoj.livejournal.com
Можно не любить С++, зато нельзя не любить Страуструпа.

Re: Парадокс

Date: 2009-06-06 10:35 pm (UTC)
From: [identity profile] avva.livejournal.com
Можно, можно.

Date: 2009-06-06 11:20 pm (UTC)
From: [identity profile] sobaker.livejournal.com
Но лучше бы это уважение уже увековечить, зафиксировав C++ в камне и поставив вооруженный караул с наказом "не подпускайте к нему детей".

Страшный же язык-то, если вдуматься. Это как дети собирают динозавров из кусочков - и вот оно и с зубами, и мох ест, и летает, и колпак клоунский, и табличка - "..но система темплейтов позволит взглянуть на это по-другому!"

Date: 2009-06-07 03:27 am (UTC)
From: [identity profile] huzhepidarasa.livejournal.com
угу, только заменить нечем

Date: 2009-06-07 05:43 am (UTC)
From: [identity profile] bujik.livejournal.com
Правда, я все равно ненавижу компьютеры. И C++.

Правда? Так бросьте первое и второе куда подальше. В чем проблема то?

Date: 2009-06-07 06:15 am (UTC)
From: [identity profile] gaus.livejournal.com
Technology sukz

Re: Парадокс

Date: 2009-06-07 08:38 am (UTC)
From: [identity profile] migmit.vox.com (from livejournal.com)
Причём любить часто и извращённо.

Date: 2009-06-07 09:28 am (UTC)
From: [identity profile] dimrub.livejournal.com
Вот именно.

Date: 2009-06-07 09:34 am (UTC)
From: [identity profile] cmm.livejournal.com
спорно, вообще-то.

Date: 2009-06-07 09:37 am (UTC)
From: [identity profile] dimrub.livejournal.com
Ну как-то нет у него альтернатив. Только C.

Date: 2009-06-07 10:34 am (UTC)
From: [identity profile] cmm.livejournal.com
вот именно. :)

Date: 2009-06-07 10:36 am (UTC)
From: [identity profile] dimrub.livejournal.com
Мне, все же, кажется, что писать много кода на C утомительно. Но я осознаю и существование альтернативной точки зрения :).

Date: 2009-06-07 11:01 am (UTC)
From: [identity profile] mudak.livejournal.com
Придётся заняться чем-то другим, а всё остальное ещё хуже.

Date: 2009-06-07 11:30 am (UTC)
From: [identity profile] cmm.livejournal.com
> писать много кода на C утомительно.

единственный известный мне эффективный способ прекратить дискуссию, уже ставшую или грозящую стать нудной (из ненасильственных, по крайней мере) — это перестать делать спорные и/или непонятные утверждения.

процитированное утверждение, к примеру, мне непонятно.  утомительно вообще или в сравнении с тем же количеством кода на C++?  или, может быть, подразумевается что C менее экспрессивен, чем C++ (в теории верно, "а так — нэт").  неясно также, какой именно аспект программирования ты находишь утомительным: я, например, чрезвычайно утомляюсь выбирать один из нескольких сравнимых по уродству но при этом взаимно несовместимых способов реализовать тривиальный кусок функциональности, а также обсуждать эти способы с коллегами, особенно когда коллеги почему-то имеют эстетические предпочтения.  ещё меня очень утомляет ментальная линеаризация control flow при необходимости разобраться в чьём-то невъебенно объектно-ориентированном коде.  ну и так далее. :)

Date: 2009-06-07 11:39 am (UTC)
From: [identity profile] dimrub.livejournal.com
Ну, лично я немало работал с различными проектами как на плюсах, так и на C, и любой проект на С нетривиальной величины рано или поздно начинал придумывать себя как проект на плюсах, только получалось это у него плохо (обожаю таблицы указателей на функции, инициализированные хрен знает где и вызываемые через макросы). Мне кажется, что при некоторой не чрезмерной образованности и слаженности в коллективе, можно создавать большие и сложные проекты на плюсах, которые потом можно в течении длительного времени поддерживать и развивать, и что те же действия на С хоть и возможны, но требуют куда больших затрат, но, повторяю, это мое личное мнение - YMM (and probably does) V.

Date: 2009-06-07 11:44 am (UTC)
From: [identity profile] cmm.livejournal.com
Мне кажется, что при некоторой не чрезмерной образованности и слаженности в коллективе, можно создавать большие и сложные проекты на плюсах, которые потом можно в течении длительного времени поддерживать и развивать, и что те же действия на С хоть и возможны, но требуют куда больших затрат

мой опыт с этим не согласуется, увы.

?

Date: 2009-06-07 12:00 pm (UTC)
From: [identity profile] greps.livejournal.com
А продемонстрируйте код пожалуйста. Что то я термин "мемоизация тяжелой функции" подрастерял...

Re: ?

Date: 2009-06-07 12:41 pm (UTC)
From: [identity profile] avva.livejournal.com
ну что-то типа (немножко упрощенно)

result = foo.Bar(arg)

превращается в

iter_type cached = cache_.find(arg);
if (cached != cache_.end()) {
return cached->second;
} else {
result = foo.Bar(arg);
cache_.insert(make_pair(arg, result));
return result;
}

Re: ?

Date: 2009-06-07 12:55 pm (UTC)
From: [identity profile] greps.livejournal.com
Ну это ведь не всегда работает, а только в тех условиях когда функция конечнозначная... или как бы ... ну ... "хит-фактор высокий"...

Re: ?

Date: 2009-06-07 12:58 pm (UTC)
From: [identity profile] avva.livejournal.com
Конечно не всегда.
http://en.wikipedia.org/wiki/Memoization

Re: ?

Date: 2009-06-07 02:54 pm (UTC)
From: [identity profile] breqwas.livejournal.com
А в этом умном термине есть смысл, выходящий за рамки привычного "кэшировать результат" (ну, юз-кейсы memcached'а)?

Re: ?

Date: 2009-06-07 03:10 pm (UTC)
From: [identity profile] avva.livejournal.com
кэшировать результат - гораздо более широкое понятие, включающее действительно например и юз-кейсы memcached. memoization обычно подразумевает локальное кэширование внутри процесса вызова одной функции, у которой нет side effects. Для чего нужно отдельное слово? напр. потому, что в некоторых языках и средах мемоизацию можно делать автоматически, для всех или для частых или для тяжелых вызовов. И это может дать огромную отдачу практически "бесплатно".

Date: 2009-06-08 12:25 am (UTC)
From: (Anonymous)
objective-c

Date: 2009-06-08 11:24 am (UTC)
From: [identity profile] lazyreader.livejournal.com
(записываю в книжечку)

любой проект на С нетривиальной величины рано или поздно начинал придумывать себя как проект на плюсах, только получалось это у него плохо

December 2025

S M T W T F S
  123 4 56
78 9 10 11 1213
1415 1617181920
21 22 23 24 2526 27
28293031   

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Dec. 29th, 2025 12:19 pm
Powered by Dreamwidth Studios