?

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

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