Свежие комментарии

Title Comment
Сеть штука такая - и не захочешь, а придется делать, как тол

Сеть штука такая - и не захочешь, а придется делать, как только на одну машину не влезаешь.

Что же касается параллелинга I/O, то вот я на пальцах прикинул.
Представим себе, что у нас максимальный io request size = 64k, длина очереди - пусть 32. Это такие типичные значения. Т.е. в очереди - 2 мегабайта данных.
Если у нас один поток данных в смежную область, то это все выполнится со скоростью линейной записи, для современных дисков примерно за 20 миллисекунд (исходя из 100Mb/sec)
Если у нас два потока и в очереди оказались запросы для двух областей, то нужно прибавить average seek (пусть 4ms) и время полуоборота (еще 2ms) - итого 26 миллисекунд.
И для каждой новой смежной области, попавшей в очередь - добавляем эти 6ms.

Понятно, что если I/O size больше, очередь длиннее.... то в результате мы таки придем к полной сериализации, которая и есть идеал в данном случае.

Я думаю, что о таких сложностях не думали и сам код матрично

Я думаю, что о таких сложностях не думали и сам код матричного замера не меняется уже лет 10 или около того.

Откалибровали на эталонной линзе вроде 50/1.4 и забыли.

<em>> Возможно, наоборот, есть компенсация виньетир

<em>> Возможно, наоборот, есть компенсация виньетирования в замере, а так как данная линза практически не виньетирует, то получается перекомпенсация.</em>

Тогда замер должен и от значения (электронной) диафрагмы нелинейно зависеть&nbsp;&mdash; при диафрагмировании виньетирование обычно спадает. Боюсь, слишком сложная система придумалась. Наверняка есть объяснение проще. Или в самом деле калибровочные константы чуть отличаются&hellip; непонятно только зачем.

не, не проходит идея с виньетированием. Если бы оно было так

не, не проходит идея с виньетированием.
Если бы оно было так, то чем шире область замера, тем она темнее (в-среднем) т.е. широкие замеры увеличивали бы экспозицию. А они - уменьшают.

Возможно, наоборот, есть компенсация виньетирования в замере, а так как данная линза практически не виньетирует, то получается перекомпенсация.

Ну и у Nikon (D3/D700 как минимум) вычитается темновой ток,

Ну и у Nikon (D3/D700 как минимум) вычитается темновой ток, благо АЦП это сам умеет.

Но там вообще много разных гитик, чем дальше, тем страшнее.

Надо именно пересвечивать - у D3 проблема в том, что там неп

Надо именно пересвечивать - у D3 проблема в том, что там неправильно обходятся с насыщением в зеленом канале

у вас там какой онлайновый чат используется? в аське я его н

у вас там какой онлайновый чат используется?
в аське я его нашел, но он её не поднимает
видимо что-то другое.

попробовали потестить Д700 - половинок не обнаружили
но мы не пересвечивали
надо будет опыт повторить с пересветом

Ой! какую прелесть нарыл: Кирилл Готовцев - &lt;i&gt;&quot;П

Ой! какую прелесть нарыл:
Кирилл Готовцев - <i>"Поскольку концепция сильно визионерская, то тексты, которые мы публикуем предполагают некоторое специальное состояние мозгов..."</i> (см.тут - http://roem.ru/2009/02/10/addednews9576/)

унтер-офицерской вдове, что сама себя высекла, остаётся только локти кусать в бессильной зависти :-))

<em>>> но в общем когда отдельные куски соберут вместе, сист

>> но в общем когда отдельные куски соберут вместе, система получается жирнее, memory footprint гораздо больше, отчего в cache влезает меньше и в результате все равно получается плохо <<

А это отдельная "лебединая песТня".
Напр. два обстоятельства:
*: Garbage Collection (GC)
*: в упрочь не оптимизирующий javac ("Буратино был тупой.. тупой... тупой, как дрова" (с) Псой Короленко - )

во-первых, GC периодически ставит на уши весь "пейджинг"... ну работа у него такая - ходить и "всё трогать руками".
во-вторых, GC более менее эффективно работает до тех пор, пока "хип" приложения не превосходит половины физич. RAM (т.е. пока "хип" более менее не свопится)
в-третьих, больно смотреть на GC, когда он вынужден перейти со стратегии mark-sweep на mark-compact - производительность всей системы (апликухи) падает на _порядки_ (причём в "аналогичной" ситуации "прямолинейные аллокаторы" в стиле С/С++ продолжают работать без заметной деградации по производительности).

в-четвёртых, у GC обнаруживаются трудности с "распознаванием" и "деаллокацией" сложных развесистых структур (напр. достаточно глубокого и пЫшного графа), в результате "мусор" может жить _оч. долго_ и собираться только когда апликуха угодит в idle (и у GC, соотв., появляется время для более скрупулёзного анализа всех этих связей и путей "ричибилити")... справедливо для jdk up to 1.4 inclusive (для последнего jvm, i.e. jdk1.5+, не проверял).

в-пятых, с учётом тупости компилятора (что справедливо как минимум для javac вплоть до 1.6+), возможны протечки памяти по абсолютно примитивной схеме - чего-то нааллокировали на локальную переменную, поработали с этим и ушли "навечно" в какой-нибудь метод (не покинув, разумеется, текущий... характерный пример - рекурсия или обработка большого массива данных с "препроцессингом"). Т.е. "переменная" (жЫрный вспомогательный класс-"препроцессор") больше не используется, но сцЫлка на него держится, что не позволяет GC собрать объект как мусор.
Оптимизирующий компилятор мог бы понять (и С/С++ компиляторы умеют это делать), что "[здесь] переменная далее не используется" и, хотя бы, занулить ссылку. Однако - "фигвам" - такие вещи приходится делать руками, чего, разумеется, никто не делает.

...ну и, конечно, "underlying library" (jdk, например) тоже поражают воображение в самую пятку. Напр. реализацию какого-нить ByteArrayOutputStream эти уроды сделали через примитивный врапер вокруг byte[], который тупо реаллокируют "по мере надобности" (причём по-простецки - "вдвое")... и это для объекта с "последовательным доступом" без операций типа "insert"/"delete".

в общем, всё плохо в датском королевстве, и все эти "кэш-промахи" даже не верхушка айсберга, а так - "музЫкальная пауза" для "лохов с пейджером" :-(

Да не за что ;) Там ещё куча деталей, про которые я сам слуш

Да не за что ;)
Там ещё куча деталей, про которые я сам слушал в пол уха.
Так что если нужно будет - обращайтесь. Этот человек консалтингом занимается в данный момент ;)

Хммм... &quot;какие нервные лица - быть беде&quot; (с) а по

Хммм... "какие нервные лица - быть беде" (с)

а почему такая реакция, как будто застали в общественном туалете типа "очко" за занятием постыдным и унизительным (типа выдавливания застарелого геморроя) ?

мне, например, тоже интересно, почему "фантомные" идеи, уже давно реализованные в других языках/метасистемах, вдруг преподносятся как нечто инновационное и ранее невиданное, но которое непременно принесёт "щастье всем даром, и путь никто не уйдёт..." (с)

или, например, реплики в духе - <i>"Сегодня заменить спеллчекер в ворде - это можно, но непросто, а завтра будет неприлично - просто неприлично - выпускать софт, в котором выраженные функциональные компоненты незаменяемы. Не самый удачный, но иллюстративно приемлемый пример."</i> - это _действительно_ означает, что кроме винды и "полуоса" Дима Завалишин ничего не видел и не знает, или он просто так "утрирует", ориентируясь на определённый сегмент "аудитории" ?

.

Вах! - &quot;закат Солнца вручную&quot; как в старом добром

Вах! - "закат Солнца вручную" как в старом добром Си :-)

идею (и область применимости) понял, спасибо за пояснения.
...отчасти идея знакомая - те же АйБиЭм-еры проводили декомпозицию объекта в набор массивов с последующей "сборкой on demand"...
"есть многое на свете, друг Горацио..." - век живи, век учись :-)

Необходимость что-то делать с low latency может и специфичес

Необходимость что-то делать с low latency может и специфический случай, но очень распространенный. На кажом компутере нынче чего только нет - и VPN, и VoIP и всякие файрволы

&lt;b&gt;&gt;&gt; Мы просто занимаемся интересными вещами. и

<b>>> Мы просто занимаемся интересными вещами. и люди о них говорят. бесплатно. Мы не пиарим. <<</b>

Дима, а давай будем _предметными_
(цЫтирую источник без малого десятилетней давности): <i>"Концепции, сплавленные здесь, отчасти рождены коллективом программистов (Завалишин, Никонов, Положинцев) в 1990-м году, отчасти придуманы мной за последующие десять лет, отчасти взяты из гениального творения Intel по имени i432, отчасти - из таких разработок, как ОС Spring, Graal и Plan 9, OS/2 SOM/DSOM и OS/400."</i>

...wayback machine хранит "первое упоминание" об http://phantom.forums.psychology.ru/ (т.е. как бы переходу от "идей" к "началу воплощения") датированное 1-ым октябрём 2001-ого... т.е. двадцатилетняя история "развития идеи" и восьмилетняя история "имплементации", но при этом у вас нет даже "пилотного прототипа", который можно было бы "потрогать руками" (твою досаду по этому поводу уже где-то тут цитировали)

так чем же вы занимались все эти восемь лет ?... - "интересными вещами", или "интересным трёпом" и самообольщениями ?
что же у вас за душой, кроме фидошных приёмов полемики и невнятного бубнежа про "десятилетний экспириенс" ? - "тындекс гуру" сдох, так толком и не родившись, а "Фантом" продолжает агонизировать, что твой псис Фе<s>л</s>никс, да ? ,-)

извини, но если судить "по делам его" и по "портфолио" dz.ru, то ничего, кроме "веб-сайтов" и "веб-шопов", вы не сделали и уже вряд ли сделаете... а все эти "Фантомы" - они как фантомные боли в ампутированной ноге - чешется, и будет чесаться до конца дней твоих, но исключительно как воспоминание и повод к флейму (в духе "когда я был помоложе, я тоже имел коня" (c) ,-))

.

Случай уж очень специфический. В большинстве задач нет многи

Случай уж очень специфический.
В большинстве задач нет многих тысяч параллельно живущих сессий и одновременного требования high system responsiveness.

Ну вот тут описана некоторая замысловатая конструкция, для и

Ну вот тут описана некоторая замысловатая конструкция, для изготовления которой нужны специальные люди, получаемые через reference. Причем, это все равно только часть задачи.

А на C++ это задачка для интервью на entry level

&lt;b&gt;&gt;&gt; Когда я говорил, что плёночной фотографии

<b>>> Когда я говорил, что плёночной фотографии пиздец, такие люди как ты, Лёша (а может и ты тоже, не помню), пренебрежительно объясняли мне (ибо очевидно же, что они велики в фотографии, а я - лох), что я тупой, и что вонючий мегапиксель цифровика никогда не сравнится. <<</b>

Ну, "я помню как всё начиналось" и даже сам поучаствовал. В то время ты трындел, что твоя agfa, помещающаяся "в задний карман брюк", уже поставила крест на слайде а "года через три он (слайд, бишь) сдохнет окончательно"... прошло десять лет, но слайд продолжает жЫть, что характерно... и сравнивать цветопередачу слайда и CMOS/CCD по-прежнему смешно.
и до сих пор можно пойти и купить "плёночник" и плёнок к нему - рынок цветёт и пахнет.

... но это всё "художественная лирика".
Интересней другое - наш дядя Дима с "более десяти лет экспириенса в индустрии" сумеет _внятно_ объяснить чем же "Фантом" (с педальным приводом ,-)) так _кардинально_ отличается от того же SmallTalk ? (и гугель ему, дяде Диме, в помощь... на склоне "десяти лет экспириенса в индустрии" ,-))

<b>>> А ещё есть другой параметр - стоимость производства кода. Который ты тоже, о свет моих очей, не видишь, потому что любишь задачи, в которых он не критичен. <<</b>
хм,
а дядя Дима что-нибудь слышал про "Objective-C" и ту жопу (да-да, не "задницу", а именно "жопу"), в которую его вогнали всё те же стивы джобсы вместе со "стоимостью производства кода" ?.. а это оч.поучительная притча, объясняющая почему "презренная джава" преуспела, а Obj-C оказался... эммм... "маргинальным" что твой asm в *nix.

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

-+-
<b>>> Ну - спокойнЕЕ надо. Есть вещи, которые и ты, о великий воин оптимального программирования, не видишь. <<</b>

Дядя Дима, а давай _спокойно_ обсудим implications, которые привносит с собой в "дот-нет"/"ждава" такой "прозрачный", с виду, GC... а _потом_ обсудим implications твоего "imaginary" "персистент вейвера"... не слабо-то, после "десяти лет в индустрии" ? ,-)

.

Да, в этом фидонете Диме существенно менее уютно. Тут ссылки

Да, в этом фидонете Диме существенно менее уютно. Тут ссылки есть! А в настоящем пiдо, пойди найди ссылку - "база уже попуржилась".

Это обещанный &quot;фидонет с гиперссылками&quot;? :-)

Это обещанный "фидонет с гиперссылками"? :-)

Так проблема с параллельностью (как и с этой мифической &quo

Так проблема с параллельностью (как и с этой мифической "индиректностью", которая доступна уже десятки лет за копейки и про которую трепло в шляпе только что услышало) - либо в алгоритме, либо в побочных эффектах. С алгоритмом как таковым ничего не сделаешь, если он не параллелится в принципе (шаг N+1 зависит от результатов шага N), а с побочными эффектами давно научились бороться функциональные языки.
Берем например Эрланг и получаем и параллельность, и "индиректность" и самодеплоймент на распределенные системы. Старый, промышленный язык.
Проблема-то на самом деле в другом. Проблема в том, что система на том же Эрланге попадает в руки вот такому вот индусу в шляпе, который весь мир вокруг видит через <s>прицел</s> книжку про J2EE. И он ее переписывает на яве, потому что ну как же так, треды без контекст свичей. Непорядок. Надо все сделать вручную, чтобы борьба с контекст свичами была бы видна невооруженным глазом. И когда <lj user="lionet"> продаст <a href="http://js-kit.com">свою компанию</a>, то покупатели перепишут его серверсайд на С++, питоне или яве. Как это произошло с Грэмом и Viaweb. Поэтому продукт на "непонятном языке" становится отрицательным фактором в борьбе за джекпот, и многие предпочитают пожертвовать скоростью разработки, перформансом и прочим ради чистогана. Мир населен индусами, в шляпах или без, и с этим приходится считаться.

...эмммм... Понятно, что к &quot;завалишину&quot; с его древ

...эмммм...
Понятно, что к "завалишину" с его древней игрушкой (осподя! - "я помню, как всё начиналось" и остался чрезвычайно удивлён тем, что он до сих пор мусолит свой "фантом" :-))) это не имеет никакого отношения, но вообще-то упираться в мантру "дисковые I/O не параллелятся" просто опасно... "гугель учит нас" (просто самый "одиозный" пример), что сеть нынче _быстрее_ дисковых операций. Соотв. если уж задача упёрлась в диск, то её нужно "параллелить" на кластере (десяток/сотня "посредственных" машин с "потребительскими" винтами и "мощной" сеткой) + "мажоритарная система" (т.е. "избыточность")... заодно, кстати, позволяет бороться с "непредсказуемостью" БД.

для "локальных" приложений зачастую хорошо работают подходы а ля "кусочно-непрерывная сортировка". Т.е. "заглотили_кусок-обработали-выплюнули... повторить" с последующей "сшивкой" результатов. Если I/O неблокирующие, то это хорошо "параллелится" (главное - уравнять затраты "вычислительной" части и I/O).

Не. Я нигде не писал про массив объектов. Массив байтовый.

Не.
Я нигде не писал про массив объектов.
Массив байтовый.
В этом массиве упакованные сессии (серверный софт).
Когда приходит новый запрос, то сессия распаковывается из массива в постоянно живущий объект, запрос обрабатывается и измененная сессия упаковывается обратно в массив.
Оказалось так быстрее, чем позволять сборщику мусора перелопачивать миллионы объектов.

&lt;b&gt;&gt;&gt; Делается почти также, как в Це - выделяетс

<b>>> Делается почти также, как в Це - выделяется большой массив и в этом массиве всё живёт. <<</b>

Это не вполне так - в джаве нет понятия "массив объектов" (это будет массив _указателей_ с кучей объектов), но выигрыш (по производительности) будет - в джаве (за ким-то хреном) _безумно_ дорогой конструктор... т.е. выгодней завести пул объектов с полиси init/dispose. В ситуациях, когда порождается bunch кортокоживущих объектов (напр. DOM или всяческие "ивенты"), такая стратегия приносит ощутимый выигрыш по производительности (в том же xml-to-DOM иногда до 20% _кумулятивного_ времени).

На сказях оно действительно портится несколько позже в смысл

На сказях оно действительно портится несколько позже в смысле параллельности.

Ну и за счет того, что скази-диски меньше по емкости, на один и тот же объем достанется больше шпинделей, что тоже украшает жизнь.

Но правильно написанная сортировка упирается именно в линейное чтение с диска (а сиков - нет вообще в практическом смысле) и тут SATA никоим образом не хуже.

&gt;&gt; задачу, которая упирается в диск, а вовсе не в CPU.

>> задачу, которая упирается в диск, а вовсе не в CPU. И хрен ты ее распараллелишь "просто" <<

Справедливости ради стоит заметить, что "почти распараллелить" удаётся сравнительно просто аппаратными средствами (SCSI). Да, мы понимаем, что это не распараллеливание, а "оптимизация очереди запросов", но сравнение "сказёвой" машины с каким-нить "убогим лаптопом" выглядит так, будто сказя "параллелят" запросы (ничуть не дискриминируя их на "системные" и "прикладные").

Ну и, в ряде случаев, такие операции могут параллелиться _буквально_ (почему, в частности, sys, temp/swap & app имеет смысл разнести не просто по разным "разделам", но по разным "спинам").

...ну и, конечно, дисковый кэш тоже никто не отменял (да, fault tolerance понижается... "но это уже совсем другая история" (с) АБС)

.

&lt;i&gt;Знаешь - на мой взгляд общее с хабром - это вы с Лё

<i>Знаешь - на мой взгляд общее с хабром - это вы с Лёшей. И могу обосновать. Я не могу припомнить, чтобы Я начал обсуждать ТВОЙ или ЛЁШИН проект, рассказывая людям, какие вы долбоёбы и пиздоболы. И не могу даже ПРЕДСТАВИТЬ себе такое поведение. А вам - нормально.</i>

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

Все что я написал - я написал что тебя сюда звать бессмысленно ибо начнется обычное бесполезное фанатство. Что, собственно, и произошло.

Вместе с тем, вы получили для 350ки 0.1ev разницы, для 40D -

Вместе с тем, вы получили для 350ки 0.1ev разницы, для 40D - 0.04. При одном размере сенсора и одном объективе.
Где-то тут подвох

О, про замер на открытой дырке я не подумал, очень здравая и

О, про замер на открытой дырке я не подумал, очень здравая идея, респект.

Я потестирую отдельно на каком-нибудь зуме вроде 16-35 или 28-75

&lt;p&gt; Провёл эксперимент с 350D и 40D (что под рукой ест

<p>
Провёл эксперимент с 350D и 40D (что под рукой есть). Методика отличается незначительно (люстра светит в потолок, свет достаточно ровный, проверено; было забавно менять не объективы на тушке, но наоборот&nbsp;&mdash; &laquo;задники&raquo; на линзе):
</p>

<center>
<a href="http://i057.radikal.ru/0902/32/582b79ea3ceb.jpg"><img src="http://i057.radikal.ru/0902/32/582b79ea3ceb.jpg" alt="Тестовый стенд" border="1" width="120" height="180" /></a>
</center>

<p>
Результаты:
</p>

<ul>
<li> 350D (ISO200):
<ol>
<li> partial&nbsp;&mdash; -3.38&thinsp;EV; </li>
<li> evalutive и center-weighted&nbsp;&mdash; -3.48&thinsp;EV; </li>
</ol>
</li>
<li> 40D (ISO200):
<ol>
<li> spot и partial&nbsp;&mdash; -3.33&thinsp;EV; </li>
<li> evalutive и center-weighted&nbsp;&mdash; -3.37&thinsp;EV. </li>
</ol>
</li>
</ul>

<p>
Полагаю, spot и partial не отличаются, так как виньетирование объектива при открытой диафрагме (а экспозамер так и производится) в центральном пятне не сказывается.
А center-weighted и evalutive измеряют экспозицию по всей площади кадра, по которой средний световой поток ослабляется объективом, что приводит к лёгкому пересвету (для &laquo;компенсировать виньетирование&raquo;).
</p>

<p>
Полагаю, использованная Вами линза (135mm f/2.0L USM) просто не виньетирует на кропе, что и объясняет одинаковые результаты при любом алгоритме замера для 450D.
</p>

Ага, нам именно надо отсечь выдержку, которая... далее по тв

Ага, нам именно надо отсечь выдержку, которая... далее по твоей цитате.

Просто про экспонометры образовалась целая мифология, которая совершенно ненужная.

А всего-то надо понимать
а) что он меряет, как соотносится замер по падающему и отраженному. Про это и пост.
б) если мы снимем "по замеру", то куда отрендерится то место, по которому мы меряли (для замера по отраженному для начала). Про это - остальные посты вокруг

Pages

Subscribe to comments_recent_new