Leave a comment

Comments 79

ext_3005289 June 14 2016, 11:49:32 UTC

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

Reply


vmenshov June 14 2016, 11:55:47 UTC
Память, это такая штука, которой совершенно пофиг сколько. Лишь бы хватало. А вот если не хватает, то наступает полный пипец.

Поэтому нельзя сказать, сколько нужно памяти на самом деле. Нужно ровно столько чтобы хватало всем.

Reply

mechnik June 14 2016, 19:56:04 UTC
Памяти - чем больше, тем лучше. Потому что программописатели, чем дальше, тем меньше признают такую штуку, как оптимизация кода и их поделия становятся все более прожорливыми до оперативки и прочих ресурсов.

Reply

vmenshov June 14 2016, 20:00:49 UTC
Память - это прежде всего кэш. А кэш - это скорость. Труд программиста дорог, а память гораздо более дешевая. Поэтому, если нужна производительность, то куда дешевле отожрать памяти, чем несколько месяцев гонять программера, чтобы он там супер-пупер алгоритмы придумывал.

Да, бывают исключения. Например, программинг под сим-карты или pos-терминалы, где килобайт на вес золота, или дата-майнинг, где данные могут занимать терабайты, и в память их ну никак не запихнуть все сразу.

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

Reply


vmenshov June 14 2016, 11:58:35 UTC
Ну и про ядра. Тут такая штука, разрабатывать многопоточные приложения надо уметь. Это совершенно другой мир разработки. Обычно все хорошо умеют в один поток. А один поток физически не может выполняться на многих ядрах параллельно. Однако если запилить многопоточное приложение, то ему хоть 100 ядер дай, оно найдет чем их занять.

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

Не зря на видеокартах этих ядер сотни или даже тысячи.

Reply

masterok June 14 2016, 12:15:32 UTC
спасибо, понятно

Reply

prezion June 14 2016, 15:35:13 UTC
Забросил кодить в эпоху сопроцессоров. Вроде компиляторы вопросы распараллеливания обязаны были реализовывать. Сейчас это явно обрабатывать надо?

Reply

vmenshov June 14 2016, 16:03:10 UTC
Это всегда нужно было делать явно. Процессор может выполнять несколько команд параллельно, да, но это до первого ветвления, и там может быть такой undo неприятный, если предсказатель ветвления не угадал, плюс это делается в рамках одного ядра. Но я не встречал нигде, чтобы компилятор сам догонял, какие куски кода можно параллелить, а какие нет. Даже простейший цикл без вдумчивого обзора не поймешь, можно запускать параллельно или нет.

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

Reply


incopolis June 14 2016, 12:32:33 UTC
Чушь наполовину.

Reply

masterok June 14 2016, 12:35:42 UTC
на какую именно половину ?

Reply

incopolis June 14 2016, 12:48:34 UTC
1. Чушь ( ... )

Reply

andry_cosmos June 14 2016, 13:40:21 UTC
Согласен с Вами. Пост скорее создает мифы, чем их разрушает.

Reply


livejournal June 14 2016, 12:35:11 UTC
Здравствуйте!
Ваша запись попала в топ-25 популярных записей LiveJournal. Подробнее о рейтинге читайте в Справке.

Reply


Leave a comment

Up