?

Log in

No account? Create an account

Previous Entry | Next Entry

Бнопня по C++

Засада. Как вы думаете, какая C++ (11) функция может быть быстрее при достаточно развесистом классе Foo?

size_t DirectSize(Foo && foo) {
    auto v = std::vector{std::move(foo)};
    return v.size();
}


size_t IndirectSize(Foo && foo) {
    auto v = construct_vector(std::move(foo));
    return v.size();
}


при условии, что construct_vector() — это функция, определённая в другом модуле?

Poll #2054853 Быстрота, милота

Какая функция может быть быстрее?

DirectSize
9(40.9%)
IndirectSize
13(59.1%)


Вопрос специально сформулирован несколько расплывчато. Хочу мнений!

Comments

nponeccop
Oct. 2nd, 2016 07:06 pm (UTC)
Re: Бнопня по C++
Ну сейчас есть Раст, Свифт, Julia и D, например. thedeemon и swizard говорят соответственно, что D и Rust вполне терпимы
mpd
Oct. 2nd, 2016 07:35 pm (UTC)
Re: Бнопня по C++
Это не совсем то, что Лев тогда выставлял, как лучшее.
Почему не упоминается Erlang и Haskell?
binf
Oct. 3rd, 2016 06:10 am (UTC)
потому что они тормозят
alll
Oct. 3rd, 2016 06:47 am (UTC)
Re: Бнопня по C++
Могу предположить, потому что Erlang и Haskell больше про быстроту и стоимость разработки, а C++ больше про скорость работы уже разработанного. Ну то-есть пилить опердень, веб-сервисы комментариев или парсеры html-страниц видимо на C++ не стоит, а на Erlang не стоит машинное зрение.
zyxman
Oct. 3rd, 2016 03:23 pm (UTC)
Re: Бнопня по C++
Насчет машинного зрения, всё тоже не так просто.

- Как уже заметил коллега thesz, когда речь идет про более-менее классические CPU, там ЧАСТЬ работы действительно оптимально делать на плюсах, но будет часть которая очень сильно выиграет от ДСЛ; а если речь идет о всяческих VLIW, CUDA, а также прочих FPGA/ASIC, то там уже не будет плюсов, а вероятнее всего будет существенная доля чистого Си, а остальное будет ТОЛЬКО ДСЛ, и ПЛЮС обязательно обертка на чем-то вероятнее всего скриптовом.

- Все дело в том, что код для сопроцессора уже далеко не идеально оптимизируется плюсовым компилятором, хотя сопроцессор очень близок по архитектуре к классическому CPU; а код для VLIW уже совсем всё..
mpd
Oct. 3rd, 2016 04:14 pm (UTC)
Re: Бнопня по C++
Лев же был тогда очень категоричен, перечитайте, пожалуйста.
Он не затрагивал экзотику, рассуждения носили очень обобщённый характер, так что мы говорим про более-менее классические CPU, не надо в сторону уводить.
zyxman
Oct. 3rd, 2016 05:57 pm (UTC)
Re: Бнопня по C++
Я с Львом общался лично где-то с 2010 года. Категоричность была несколько другая и совершенно логичная - что НОВЫЕ проекты будут ГОРАЗДО МЕНЬШЕ делаться на плюсах, а будут делаться на том на чем их удобнее делать, и в этом он совершенно прав.

- Реально сейчас очень много вещей за которые платят деньги, делаются совсем не на плюсах, а на Javascript, Java, Scala, Ruby. В этом ряду явно си-подобная только Java, а остальные в большей или меньшей степени богаче чем Си.
Чтобы Лев агитировал за Хаскел я вообще не припоминаю.
mpd
Oct. 3rd, 2016 06:19 pm (UTC)
Re: Бнопня по C++
Он там потом нажимал больше, конечно, на Erlang.
Хорошо, а почему не Haskell?
zyxman
Oct. 3rd, 2016 06:47 pm (UTC)
Re: Бнопня по C++
Я вот тут объяснил подробнее:
http://lionet.livejournal.com/139828.html?thread=4604980#t4604980

Profile

lionet
Lev Walkin
Website

Latest Month

December 2016
S M T W T F S
    123
45678910
11121314151617
18192021222324
25262728293031
Powered by LiveJournal.com
Designed by yoksel