1.1, ъ (?), 18:13, 25/06/2015 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
Не скажу за полезность этого решения, но вот как за шаблон кода для создания виртуальных сущностей внутри виртуального бакэнда спасибо. Жаль, что почти весь код был _скопирован_ (именно скопирован, а не импортирован или включен через заголовки) из исходников самого постгрескюэль...
| |
1.3, rshadow (ok), 18:33, 25/06/2015 [ответить] [﹢﹢﹢] [ · · · ]
| +1 +/– |
То есть он умеет только EXPLAIN без ANALYZE...
Похоже на попытку использовать какой то костыль вместо того чтобы включить мозги.
| |
|
2.5, Crazy Alex (ok), 19:14, 25/06/2015 [^] [^^] [^^^] [ответить]
| +/– |
Если есть возможность использовать машинно-реализуеамый костыль вместо мозгов - надо её использовать. Такой костыль может использоваться самой машиной, мозги - только в комплекте с живым человеком.
| |
|
|
4.12, Crazy Alex (ok), 22:32, 25/06/2015 [^] [^^] [^^^] [ответить]
| +/– |
Почему 100500? Наплодить столько, сколько позволено настройками. Например, для ORM - милое дело, пожалуй, будет. Супер-производительности, может, и не будет - но зато автоматом. Ну и вообще это правильное направление, примерно как компиляторы в своё время хуже, чем люди, ассемблерный код генерили, а теперь - человек в состоянии посостязаться только на небольших кусках, и далеко не всякий.
| |
|
5.13, rob pike (?), 23:41, 25/06/2015 [^] [^^] [^^^] [ответить]
| +/– |
Ну вот только для ORM разве что. Получится, правда, всё равно как всегда - ANALYZE никто делать не будет, статистику крутить не будет, половина индексов будут медленнее seqscan-а. Зато можно написать "наш ORM умеет ого-го, приходить в сознание с ним вообще необязательно". Потом всё равно звать DBA со стороны и платить $200 в час чтоб как-то заворочалось.
С ассемблером всё осталось ровно так же, потому что замок эволюционирует не медленней ключа.
Во-первых, современный Haswell - он уже сильно умнее Сишного компилятора во многих местах (если не сказать "во всех"), причём недетерминированность проявляется и в этом - то есть оптимизация превращается в угадайку - кто угадал насколько тупого кода ему надо в этом конкретном месте с этими конкретными данными, чтобы он сказал "ага! я знаю этот паттерн!" и оптимизировал, тот и молодец. Что в подавляющем большинстве случаев выражается в практичности подхода "всё что мы можем осмысленно сделать - это добиться того чтобы этот чанк кода помещался в кэш" (ну и выложить данные, этому коду нужные максимально ровным и непрерывным слоем, но это просто). То есть сдуваем пыль со старой книжки про ассемблер.
Во-вторых, оптимизация нынче начинается со слова SIMD, и тут состояние имеющейся машинерии примерно как у Си-компиляторов в 1985 году, и если надо быстро - ручками, всё ручками. https://deplinenoise.files.wordpress.com/2015/03/gdc2015_afredriksson_simd.pdf
| |
|
6.15, Crazy Alex (ok), 00:11, 26/06/2015 [^] [^^] [^^^] [ответить]
| +/– |
Получится так, как будет в инструкции к ORM. Да, с какого-то момента - звать DBA. Но если этот момент отодвинуть - это значит, что для определённого процента проектов он не наступит вообще никогда.
А в ассемблере - слабо представляю ручное раскидывание параметров и переменных по регистрам на сколько-нибудь большом объёме кода. SIMD - это там, где надо обрабатывать большие однородные массивы, а этого, как, ни странно, не так уж много. А где обычный код - с кучей веток исполнения, небольшими функциями, тремя-четырьмя уровнями индирекшна - там как раз компилятору раздолье, а людям делать нечего. О PGA и прочих JIT-оптимизациях я и не говорю. Когда начинается многопоточность со всеми memory barriers и прочим - тем более невелика радость.
По поводу ссылки - у игроделов все SIMD и ассемблеры закончатся ровно там, где начнётся AI. Не только потому, что его в половине случаев вообще на скриптах пишут, но и потому, что там обычно вагон условий и сравнительно мало молотилок чисел.
| |
|
|
|
|
2.14, rob pike (?), 00:01, 26/06/2015 [^] [^^] [^^^] [ответить]
| +/– |
> Похоже на попытку использовать какой то костыль вместо того чтобы включить мозги
Примерно 99% развития IT в этом и заключается.
| |
|
1.16, None (??), 01:06, 26/06/2015 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
следующий шаг - сделать так, чтоб analyze говорил, где ему не хватает индексов и материализованных вьюшек для создания оптимального запроса
| |
|
2.20, rob pike (?), 11:36, 26/06/2015 [^] [^^] [^^^] [ответить]
| +1 +/– |
И приделать ему телепатию чтобы он знал что такое оптимальный запрос для наших конкретных условий.
| |
|
|