?

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

mpd
Oct. 2nd, 2016 09:58 am (UTC)
Re: Бнопня по C++
"А вы не знаете, почему Володька сбрил усы?"
"Вы не отвечаете на мой ответ!"

Хорошо, вы меня - убедили про Си++: "Ладно, я согласен быть богатым. Согласен быть счастливым."
А теперь вернёмся к моему изначальному комментарию (я уже объяснил для Профессора, постараюсь и вам), чего я никак не пойму: Почему человек, спустя восемь лет после утверждения и настаивания на том, что Си++ - мёртв, вдруг начинает обсуждать продвинутые фичи современного состояния языка? Вот, мне интересен именно личный аспект, что произошло, как это происходило, почему?

Вот, как мне ваши с Профессором комментарии помогают понять это?
Что это произошло из-за того, что Си++ - хороший? Ну, я и восемь лет назад что-то об этом думал, если сходить по ссылке на мой блог (печатаю явно, а то стиль скрывает): http://mpd.livejournal.com/13951.html
nponeccop
Oct. 2nd, 2016 04:03 pm (UTC)
Re: Бнопня по C++
Предлагаю спросить Льва в отдельном новом треде, и с явным указанием на то, что хочется ответа именно от него.

Совсем немного личный аспект могу прояснить и я. Echo закончился, сейчас Лев в новой команде работает над новым проектом.

Я не имел ввиду, что Си++ хороший. В докладе Саттера (он длинный, но имхо стоит посмотреть) говорится, что для С++ появились новые ниши, например, мобильные приложения. И что при больших датацентрах доминирует уже не зарплата разработчиков, а железо (стоимость оборудования и электричества), так что большие компании типа Гугла и Амазона и МС имеют миллионные кодобазы на плюсах и контрибутят усиленно в компиляторы С++. И что в будущем значение метрик производительности (производительность на доллар, на транзистор, на ватт) будет только возрастать, поскольку появляются новые невиданные классы приложений вроде машинного зрения (и я думаю машинного обучения с бигдатой).

mpd
Oct. 2nd, 2016 05:58 pm (UTC)
Re: Бнопня по C++
Спасибо!!!

Доклад - обязательно посмотрю.
Перезадавать свой вопрос - не буду.
Но не спросить - я тоже не мог.

Хотя, ... Вот, интересно, а та альтернатива, которую Лев тогда продвигал, как с ней сейчас?
Я ведь, грешным делом, так и не изучил ни одну из тех, что он предлагал...
А если бы изучил, оправдались бы мои вложения?
С другой стороны - "нас и здесь - не плохо кормят"...
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)
потому что они тормозят
Re: Бнопня по C++ - alll - Oct. 3rd, 2016 06:47 am (UTC) - Expand
Re: Бнопня по C++ - zyxman - Oct. 3rd, 2016 03:23 pm (UTC) - Expand
Re: Бнопня по C++ - mpd - Oct. 3rd, 2016 04:14 pm (UTC) - Expand
Re: Бнопня по C++ - zyxman - Oct. 3rd, 2016 05:57 pm (UTC) - Expand
Re: Бнопня по C++ - mpd - Oct. 3rd, 2016 06:19 pm (UTC) - Expand
Re: Бнопня по C++ - zyxman - Oct. 3rd, 2016 06:47 pm (UTC) - Expand
thesz
Oct. 3rd, 2016 03:17 pm (UTC)
Re: Бнопня по C++
Электричество экономится не кодированием с экономией циклов, а правильной поддержкой протоколов типа Raft/Paxos и/или checkpoints.

Это я как недавно выращенный спец по HPC говорю.

С обеими пунктами у C++ тяжело.
mpd
Oct. 3rd, 2016 04:07 pm (UTC)
Re: Бнопня по C++
> Электричество экономится не кодированием с экономией циклов

Согласен! Говорят, интел уже давно выпустил процессор, который обходит вечный цикл за 1 секунду! :-D

А если серьёзно...

> Raft/Paxos и/или checkpoints

Это - отлично!

> С обеими пунктами у C++ тяжело.

Это из-за чего?
Они принципиально не реализуемы на Си++?
thesz
Oct. 4th, 2016 01:00 pm (UTC)
Re: Бнопня по C++
На C++ тяжело реализовать Paxos/Raft. В отличии от Фортрана, например, автоматически сделать checkpoint тоже тяжело.
Re: Бнопня по C++ - mpd - Oct. 4th, 2016 02:44 pm (UTC) - Expand
Re: Бнопня по C++ - thesz - Oct. 4th, 2016 03:21 pm (UTC) - Expand
Re: Бнопня по C++ - mpd - Oct. 4th, 2016 04:59 pm (UTC) - Expand
Re: Бнопня по C++ - thesz - Oct. 4th, 2016 06:42 pm (UTC) - Expand
Re: Бнопня по C++ - mpd - Oct. 4th, 2016 07:07 pm (UTC) - Expand
Re: Бнопня по C++ - thesz - Oct. 4th, 2016 10:33 pm (UTC) - Expand
Re: Бнопня по C++ - mpd - Oct. 4th, 2016 10:52 pm (UTC) - Expand
Re: Бнопня по C++ - thesz - Oct. 5th, 2016 10:48 am (UTC) - Expand
Re: Бнопня по C++ - mpd - Oct. 5th, 2016 11:51 am (UTC) - Expand
Re: Бнопня по C++ - thesz - Oct. 5th, 2016 11:57 am (UTC) - Expand
Re: Бнопня по C++ - mpd - Oct. 5th, 2016 12:37 pm (UTC) - Expand
Re: Бнопня по C++ - rdia - Oct. 5th, 2016 04:17 pm (UTC) - Expand
Re: Бнопня по C++ - mpd - Oct. 5th, 2016 04:39 pm (UTC) - Expand
Re: Бнопня по C++ - rdia - Oct. 5th, 2016 04:54 pm (UTC) - Expand
Re: Бнопня по C++ - mpd - Oct. 5th, 2016 06:38 pm (UTC) - Expand
Re: Бнопня по C++ - thesz - Oct. 26th, 2016 05:42 pm (UTC) - Expand
Re: Бнопня по C++ - mpd - Oct. 26th, 2016 07:38 pm (UTC) - Expand
Re: Бнопня по C++ - thesz - Oct. 26th, 2016 11:19 pm (UTC) - Expand
Re: Бнопня по C++ - mpd - Oct. 27th, 2016 07:40 am (UTC) - Expand
Re: Бнопня по C++ - thesz - Oct. 27th, 2016 02:36 pm (UTC) - Expand
Re: Бнопня по C++ - mpd - Oct. 27th, 2016 02:54 pm (UTC) - Expand
zyxman
Oct. 3rd, 2016 03:12 pm (UTC)
Re: Бнопня по C++
> Почему человек, спустя восемь лет после утверждения и настаивания на том, что Си++ - мёртв, вдруг начинает обсуждать продвинутые фичи современного состояния языка? Вот, мне интересен именно личный аспект, что произошло, как это происходило, почему?

Я думаю что нет там особо никакого личного аспекта. Это именно что рафинированный джаст бизнес.

Просто пока кодобаза С++ огромна и ее никак нельзя игнорировать, так что можно где это удобно использовать всяческие Эрланги, а остальное делать на С++.
Точнее, где Лев может выбирать, он выбирает то что ему более удобно, а где не может, там выбирают другие.

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

Поэтому случаются вообще феноменальные истории, типа енота, серверная часть которого изначально писалась на дотнете, а потом ради ускорения ее переписали на плюсах.
mpd
Oct. 3rd, 2016 04:23 pm (UTC)
Re: Бнопня по C++
Ну, хорошо, идёт поддержка старого, согласен.

Но почему тогда, спустя восемь лет, когда я пересобираю всю систему из исходников (у меня Gentoo) с большим количеством разного софта из исходников, я ни разу не напарывался на софт из тех самых альтернатив (Erlang, Haskell)? Ну, должно же было что-то появиться уже!!!

Единственный раз, когда у меня потянулась зависимость - установка darcs. Но т.к. я его не использую, то снёс уже очень давно и не возвращался к нему.

Хотя, наверно, я - слишком "красноглазик" и на винде с макосью - всё выглядит совсем иначе, не знаю...
zyxman
Oct. 3rd, 2016 06:38 pm (UTC)
Re: Бнопня по C++
> Но почему тогда, спустя восемь лет, когда я пересобираю всю систему из исходников (у меня Gentoo) с большим количеством разного софта из исходников, я ни разу не напарывался на софт из тех самых альтернатив (Erlang, Haskell)?

Потому что Линукс это только ядро с утилитами, которые всё еще пишутся на Си, а производители стороннего софта вынуждены либо склоняться под превалирующее положение вещей, либо создавать собственную инфраструктуру с нуля, что может потянуть только очень крупная контора.

Да, и среди альтернативщиков, полноценная инфраструктура разработки есть практически только у Эрланга и только под свою предметную область (серверы и очень большие риалтаймовые сети), а все остальные почти голые - ни библиотек, ни проработанной экосистемы разработки.
А у плюсов есть хоть и хреновенькие но готовые экосистемы почти под всё на свете.
mpd
Oct. 3rd, 2016 07:58 pm (UTC)
Re: Бнопня по C++
Спасибо за все три последних комментария.

> Линукс это только ядро с утилитами

Нет, я тут говорил про всю систему целиком (я не зря упоминул darcs), т.е. ещё и редакторы всего, проигрователи всего, просматривалки всего, работа с интернетом (браузеры, почта, сообщения, конференции, фаилообменники, ..), офис, среды разработки и сопутствующие утилиты (VCS, компиляторы, прочие утилиты). Из того, что не собирается - Skype, Adobe Reader, Adobe Flash, JRE (может, что-то забыл). Это около тысячи пакетов.

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

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

Ercisson с Erlang'ом - молодцы! Своя ниша.

> Проблема не в компиляторе, а в том что у СТАНДАРТНОГО С++ очень низкий уровень абстракции, жестко заточенный на CISC процессор.

Да, согласен, не удобно, но реально, если нужно.
Да, с расширениями, интринзиками и пр.
Но ведь и обсуждаемая в этом посте у Льва фича - она не сразу в языке появилась, а сейчас, даже если о ней не знать до сих пор, она всё равно будет имплицитно использована при использовании библиотек. Т.е., язык - не стоит на месте.
Например, с нитками работать - уже давно можно было, а теперь они - в стандарте, очень гармонично и всесторонне интегрированы.
Кто знает, может через какое-то время и к новым астракциям у стандарта руки дойдут, учтя опыт других сред и языков разработки. ;-)
(на самом деле, это уже идёт, но пока "флеймит" ужасно)
Re: Бнопня по C++ - zyxman - Oct. 3rd, 2016 11:25 pm (UTC) - Expand
Re: Бнопня по C++ - zyxman - Oct. 3rd, 2016 11:50 pm (UTC) - Expand
Re: Бнопня по C++ - mpd - Oct. 4th, 2016 08:46 am (UTC) - Expand
anonim_legion
Oct. 4th, 2016 03:14 pm (UTC)
Потому что под линуксы не пишут ничего И открытого И нетривиального. Потому что с нетривиальными областями у опенсорца вообще туго. Байтики перекладывать они могут, емейлы посылать, или там - "резиновый" диск сделать на LVM.

А вот например сделать ИИ для single-player опенсорцной игры уже не могут. И то же машинное зрение - оно вышло вовсе не из тех мест, где ваяют ядро, или допиливают дырки в bind. Вещи вроде Apache Cassandra тоже не на си с дырками написаны.
mpd
Oct. 4th, 2016 05:05 pm (UTC)
Re: под линуксы не пишут ничего И открытого И нетривиаль
Большое спасибо за ваше мнение!

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