All streams
Search
Write a publication
Pull to refresh
14
0
Alex Nekipelov @nekipelov

программист

Send message
А кто говорит про NRVO? Я написал "// Компилятор не может использовать RVO". Не NRVO, а RVO. "Плохой код" — это образное выражение относительно RVO, разумеется в нем нет ничего плохого.
Что именно неправда? Что NRVO не всегда может быть задействована? Или что не у всех классов есть конструктор перемещения? Что в примере не может быть задействовано RVO? Так и по ссылке тоже самое:

std::vector<Noisy> f()
{
    std::vector<Noisy> v = std::vector<Noisy>(3); // copy elision from temporary to v
    return v; // NRVO from v to the returned nameless temporary
}             // or the move constructor is called if optimizations are disabled

Или про "совет почти потерял актуальность"?

Вы уж поконкретней, пожалуйста :-)
Ага, тороплюсь, поэтому еще больше ошибаюсь :-)
И правда я отстал от жизни :-)
Да, я выбрал плохой пример. Исправил.
Согласен, std::string плохой пример, т.к. он имеет конструктор перемещения. Изменил на абстрактную структуру.
Автор достаточно хорошо знает, просто невнимательно прочитал комментарий.
Код идентичный. Разница в необходимости проверок.
Спасибо за замечание, сейчас поправлю.
Не думаю, что в программировании применимы джентльменские соглашения. Если указатель может указывать на null, рано или поздно он будет туда указывать. Если деструктор может сгенерировать исключение, рано или поздно это произойдет. Если обработчик сигнала не AS-Safe, рано или поздно это приведет к dead-lock. Поэтому указатели используют там, где нужен именно указатель. И обкладывают проверками.
Поэтому я отметил: "Этот совет почти потерял актуальность" :-)

Есть move semantics, но пока не у всех классов есть конструктор перемещения, чтобы компилятор мог это задействовать.
Так ведь статья о применении подхода работы с большими данными :-)

В реальной жизни для обработки действительно большого графа (например web-графа) вам потребовалось бы реализовывать например pregel (http://web.stanford.edu/class/cs347/reading/pregel.pdf). На spark такое считать совсем не рентабельно. Однако для небольших графов, которые не являются big-data и помещаются на одной машине он не эффективен.
Теперь давайте представим, что пользователей 20 млдр, у каждого 200 друзей. Это уже достаточно большие данные.

Как будет работать ваше решение? Ведь граф придется делать распределенным, на одной машине он не поместится даже на жесткий диск.
Пробовал считать граф, в котором было примерно 20 млрд вершин и 1,5 трлн ребер на кластере меньше 100 машин. Подход MapReduce для графов совершенно не подходит. Spark интересный и перспективный инструмент, но и он не подходит для работы с графами. Есть GraphX, который будет оптимальней. Правда до тех пор, пока данные помещаются в оперативной памяти.

С очень большими графами на момент, когда я его смотрел, он работать не мог :-(
2 Гб, пусть и в сжатом виде, это уже большие данные? Странно. Я то считал большими данными то, что не помещается на одном сервере.

И не понятно, чем занимался кластер из 100 машин, если на каждую приходилось по 20 Мб сжатых данных. Подозреваю, что это был hadoop кластер и обработка графа выполнялась с помощью MapReduce?
Наверное СУБД — это все же инструмент. И в зависимости от задачи мы берем тот или иной инструмент (это кстати и к голосованию относится). Универсальных СУБД не существует.
Стоит отметить, что успехи в области создания российской операционной системы уже есть. Можно вспомнить ОС МСВС, применяющуюся в Министерстве обороны с 2002 года.


Замена надписей на кнопках с «ОК» и «Отмена» на «Есть» и «Оставить» вы называете успехом? Возможно с тех пор там многое изменилось, но все же это никак нельзя назвать российской операционной системой. Т.к. чуть ли не полностью состоит из компонентов, сделанных программистами всего мира.
Да чему там переучиваться то? Вы же не на макось переезжаете. Новый интерфейс вполне за вечер осиливался, как с переездом 98->XP, так и с XP->7->8. Вот со сменой идеологии 3.х->98+ было чуть сложнее, да.


Я и виду счет с DOS -> 3.х -> 95/98 -> XP -> 7. Каждый такой переезд просто неприятен перестановкой и переделкой. Разумеется это не значит, что сама система хуже. Просто все новое непривычно. Осиливается быстро, если это ваша настольная система и используется ежедневно. Если же сталкиваться с ней приходится время от времени, раз в неделю или месяц, то привыкать и ругаться нужно дольше.

> … Помните свои первые ощущения от Windows XP? Я свои помню — «наконец-то они сделали нормальную Винду!»

Конечно: блин, опять переучиваться. Я имею в вижу всякие мелочи вроде свойств сетевого адаптера, настройки принтеров и т.д. Они переезжают в разные места и требуется все больше кликов, чтобы до них добраться. Ну ладно, к XP я в конце концов привык. Сейчас не могу к Windows 7 привыкнуть (мое первое восклицание: а где telnet?), но она уже устарела и привыкать надо к Windows 8. Хотя, купил жене планшет на Android, может и не придется :-)

> Интересно, что XP — самая долгоживущая система от Microsoft:

А не MS-DOS ли? Клоны этой системы до сих пор живут и здравствуют. Да и сама Microsoft эту систему почти 20 лет развивала.
Потому, что так сложилось. Давайте мы не будем обсуждать мою бибилотеку, она не имеет к статье никакого отношения. Вот когда я напишу статью о ней, к этому вопросу можно будет вернутся :-)

Information

Rating
Does not participate
Location
Москва и Московская обл., Россия
Registered
Activity