Немного туп(л,)
84 subscribers
178 photos
26 videos
39 links
Маленький бложег С++ программиста, увлекающегося Rust'ом. Не столько про пргрмрвне, а вообще.
Download Telegram
Немного туп(л,)
Я вас слегка обманул, и ответ будет не здесь, а в следующем посте :) Потому что, на самом деле, информации, данной в предыдущем посте, недостаточно для вынесения окончательного решения. Есть ещё один важный участок кода, примерно такой: struct MyAnotherType;…
А вот теперь ответ:
Была удалена строчка storage.reserve(new_capacity);. Ну, ещё можно удалить подсчёт new_capacity, но это и оптимизатор умеет выкидывать.

Ну и, собственно, почему так произошло? А потому что, процесс подготовки буфера за время между итерациями цикла не успевал напихать туда много данных. И в большинстве случаев из буфера извлекалось всего 1-2 элемента (чаще 1).

Получается, мы приходим в функцию foo(), смотрим, что надо увеличить размер на 1 элемента, делаем реаллокацию, часто приводящую к перемещению и всех старых данных в памяти, и вставляем новый элемент.
На следующей итерации, мы снова приезжаем в foo(), снова реаллоцируем на 1 дополнительный элемент и так далее.

Почему помогло удаление? Потому что стандартное поведение std::vector при push'е следующее:
А) Если capacity достаточно - просто вставляем элемент.
Б) Если capacity закончилось - реаллоцируем old_capacity * 2 (а не old_capacity + 1, как было в нашем "ручном" коде).

Собственно, тот, кто это изначально написал - не дурак. Он всё сделал так-то правильно, согласно правил хорошего тона: хочешь расширить одну коллекцию данными из другой коллекции - сначала сделай resize(), чтобы не было аллокаций в цикле при вставлении.
Но он не учёл особенность исходных данных, которые попадают сюда. Более того, есть подозрение, что раньше тут таких проблем не было, оно вполне могло появиться вследствие рефакторинга функции bar(). Например, раньше здесь всё могло крутиться в одном потоке и buffer всегда был намного сильнее наполнен. Или данные могли лежать немного другие, которые строились намного быстрее, поэтому и проблем не было.

Так что такие дела. Профилируйте, и ускорены будете ☝️

P.S. Каким-то образом у меня стало 20 подписчиков, именно поэтому я решил хоть что-то новое написать 😅
💩3
Супруга заказала себе какой-то крем из Кореи. Мне стоит переживать?..

#irl #haha
😁6💩1
Это ведь блог про пргрмрвне? Тогда держите заметку про букву Ё!

Нелюбимая многими буква. Писать её от руки долго, на стандартной раскладке русскоязычной клавиатуры она находится в неудобном углу, на виртуальных клавиатурах мобильных устройств она спрятана за долгим нажатием буквы е, а словари Т9 автозамены большинства таких клавиатур эту букву не содержат. Был прецедент на работе, когда наши методисты потребовали от меня перелопатить весь GUI одного из наших приложений, чтобы удалить все буквы ё оттуда, потому что военная приёмка заворачивала документ назад на редактирование, когда их обнаруживала. И есть вчитаться в кучу технической или юридической литературы, то буквы ё вы там тоже не увидите. Более того, где-то может промелькнуть мнение, что буква ё вообще запрещена к использованию в официальных документах. Однако, истина, как всегда, где-то по середине.

Начну с истории и разберу постулат, мол "буква ё - исконно древняя русская буква и использовать её надо всегда". Нет, это не так.
Использование звука [jo] долгое время считалось просторечным и недопустимым для лиц знатных кровей и достойных занятий. Однако в итоге эта литера была введена в отечественную типографию в 1797 году. Заметьте, литера, не буква. То есть в азбуке такой буквы всё ещё не было. Потом она из из типографии снова пропала, ибо было сложно реализовать надстрочные символы в ограниченной по высоте строке, да и само изготовление типографских литер с такими надстрочными символами было трудоёмким.

В общем, буква ё точно не "исконно" русская. То есть правы те, кто считают, что букву ё вообще использовать не нужно? Тоже нет. Вернёмся к историческому экскурсу.

Знаковое событие произошло в конце 1917 года, когда нарком просвещения А. В. Луначарский опубликовал декрет, где среди прочего было написано: "Признать желательным, но необязательным употребление буквы ё". Однако, в октябре 1918 года этот декрет повторно публиковали и этот пункт удалили. Недолго музыка играла, недолго фраер танцевал.
Полноценно в алфавит буква ё (а вместе с ней и буква й) вошла только 24 декабря 1942 года приказом народного комиссара просвещения РСФСР В. П. Потёмкина, и было утверждено её обязательное использование.

Так всё-таки значит используем?!
Та не тарапысь!

В 1956 году её снова немного "отменили" :) Точнее не совсем: было запрещено последовательное употребление буквы ё. Правда я не просто так выделил слово последовательное.
Использование буквы может быть последовательным, а может быть выборочным. Последовательное использование значит, что буква ё используется постоянно, в каждом слове, где присутствует соответствующий ей звук (так, как это делаю я). Выборочное же использование подразумевает использование буквы ё только в тех словах, где без неё возможно разночтение. Например: "Вот тут мы и передохнем", или "Вот тут мы и передохнём". Семантический смысл совершенно различный. Ещё букву ё было обязательно использовать в словарях (вместо ударения), детской образовательной литературе и малоизвестных словах (например, вы знали, что есть река Олёкма?).

Окей, значит используем, но редко, а я, такой-сякой дурак, пишу её везде и нарушаю нормы и правила русского языка? Тоже нет ;)
Пришёл прекрасный 2006 год. Тогда и солнце было ярче, и трава зеленее, и постановлением Правительства РФ от 23.11.2006 г. № 714 «О порядке утверждения норм современного русского литературного языка при его использовании в качестве государственного языка РФ, правил русской орфографии и пунктуации» было установлено, что букву ё необходимо использовать там, где возможны разночтения (всё как и раньше, а так же имена людей, фамилии и имена собственные) и рекомендуется выборочное использование, но при этом по желанию автора (или редактора) любая книга может быть напечатана с последовательным использованием буквы ё! Аллилуйя! Я - автор, как хочу, так и пишу 🌚
🔥2💩1
Немного туп(л,)
Это ведь блог про пргрмрвне? Тогда держите заметку про букву Ё! Нелюбимая многими буква. Писать её от руки долго, на стандартной раскладке русскоязычной клавиатуры она находится в неудобном углу, на виртуальных клавиатурах мобильных устройств она спрятана…
Подводя итоги: если вы пишите курсовую, реферат, диплом, техническую документацию, руководство пользователя - вам необходимо использовать букву ё выборочно. Если общаетесь в чатике, ведёте свой блог, решили напечатать книгу - как хотите, но помните: если вы решили использовать букву ё последовательно, но в каком-то одном слове её забудете, то горе вам, посыпайте голову пеплом, я найду это и ткну вас в это место.

При подготовке данной заметки были использованы:
1. Википедия
2. Хабр
👍1💩1
Forwarded from Seer Iλusha aka Vennik
fn you_can_not_call_me<T: Copy + Drop>() {}
💩1
🔥3💩1
У меня на хабре около 1400 статей в закладках... Легко догадаться, что в основном я их туда "кладу", но не читаю 😅 Хотя иногда - всё же читаю.

Например, сейчас я выудил из закладок статейку "О конце времен. Может ли время закончиться?"
Сама статейка не очень научна, как мне кажется (я ненастоящий сварщик физик, чтобы иметь смелость о чём-то действительно аргументированно спорить в этом вопросе), но один момент мне очень понравился.

Если кратко: автор обращается к псевдоевклидову пространству-времени, координаты в котором представлены в виде x^2 + y^2 + z^2 - c^2 t^2, где x, y, z - привычные координаты трёхмерного пространства, c - скорость света в вакууме, а t - время. Далее переходит к формуле x^2 + y^2 + z^2 + K t^2 и допускает, что K плавно со временем меняется от -1 до +1.
И вот при таком допущении, по заверению автора, появляется интересная штука: при уменьшении по модулю значения K внутреннему наблюдателю, считающему K (то есть скорость света) константой, начинает казаться, что вселенная расширяется, причём с ускорением. И лишь в момент, когда K достигнет нуля, то есть вселенная достигнет координатной сингулярности, и начнёт расти (напомню, что изначально K было меньше нуля), мы придём к обычному четырёхмерному евклидову пространству и увидим, что все объекты стоят на своих местах и никуда не двигались (точнее пространство не расширялось).

Мне нравятся такие предположения, потому что они выглядят простыми. Это как переход от геоцентрической солнечной системы к гелиоцентрической.
Однако у этой статьи есть нюанс, кажется нарушается принцип причинности, а это немножечко проблема, но всё ещё #твёрдый_факт.

#science #physics
💩1
Когда я заканчивал перед сном оформлять вчерашнюю запись, я вспомнил, что лет 6 назад что-то прикольное и связанное со скоростью света я публиковал на своей странице в ВК. Учитывая, что из ВК я слинял, имеет смысл перенести эту запись сюда 👀

#old #science #physics

Захотелось задвинуть что-нибудь мозговыносящее, но при этом интересное.

Как вы знаете (хотя может и не знаете, но тогда сейчас узнаете) при приближении скорости перемещения тела к скорости света начинает наблюдаться эффект "замедления времени" (назовём это так). То есть тело, которое ускорено до околосветовой скорости проживает меньшее количество времени за то же время (прикольно звучит, да?). Есть даже "парадокс двух близнецов", суть которого такова: возьмём двух братьев близнецов и одного отправим в космос на околоземную орбиту. Продержим его там годик-другой, после чего вернём на Землю. И весь прикол в том, что теперь эти братья близнецы будут сильно отличаться: тот, что вернулся из космоса будет намного моложе того, что оставался на Земле (ну, не то чтобы "намного", но это уже можно будет отличить).

Но попрошу заметить, что наш космонавт не приближался к околосветовой скорости, а был очень далёк от неё: скорость движения МКС, например, по орбите Земли составляет 27'700 км/ч (или 7,69 км/с), в то время как скорость света составляет около 300'000 км/с. Таким образом, можно сделать вывод, что любое (подчеркну ЛЮБОЕ) увеличение скорости перемещения приводит к замедлению старения.

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

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

И это #твёрдый_факт.
💩1
О, нашёл на своей стене в ВК ещё один #твёрдый_факт!

#quote #readit #old

Допустим, что Вселенная бесконечна. И что во Вселенной бесконечно много планет, просто потому, что в бесконечном пространстве им всем хватает места.

Однако не все из них населены (но, как минимум, одна точно). Следовательно, должно существовать конечное число населённых планет. Любое конечное число, поделённое на бесконечность, стремится к нулю так быстро, что результат просто невозможно заметить, так что в среднем население населённой планеты в этой Вселенной, можно сказать, равно нулю.

Отсюда следует, что население всей Вселенной тоже равно нулю, а те, кто встречается вам время от времени - только продукт вашего больного воображения.

© Дуглас Адамс, Ресторан "У конца Вселенной" в переводе В. Филиппова (с небольшими ремарками вашего покорного)
💩1
Ремарка про "твёрдые факты"

Нужно понимать, что они не совсем научны, особенно утверждение Дугласа Адамса. Однако они забавны и способны у юношеского пытливого ума разжечь интерес к физике.

А вообще само выражение "твёрдый факт" из замечательного мультфильма "По ту сторону изгороди". Крайне рекомендую к просмотру.

P.S. Жена, может пересмотрим мультфильм, а? 🌚
💩1
Тронулись! Мы все тронулись!
💩2😁1
Кажется меня обманули, и это не Санкт-Петербург... Откуда тут солнце? 😑
🔥1💩1
Стало известно что 3 августа 2023 года после скоротечной болезни скончался отец-основатель VIMa Брам Моленаар.

:wq!

Хочу так же приложить цитату одного хабравчанина к соответствующей новости:

death — это не приговор, а всего лишь способ удалить кусок текста от позиции курсора до конца текущего слова, после чего добавить к началу следующего слова префикс "th".

Ну и не забывайте помогать детям Уганды, Брам этого бы хотел.
Ура? Узнаем, когда прилунится

#repost #science
👍1
Forwarded from PRO Hi-Tech
Сегодняшней ночью «Роскосмос» успешно запустил станцию «Луна-25».

Ракета-носитель «Союз-2.1б» штатно стартовала с Российского космодрома Восточный. Через нескольких недель полета «Луна-25» отработает мягкую посадку и начнет искать воду на Луне, а также будет изучать летучие соединения и экосферу.

Это первая в истории современной Российской космонавтики лунная миссия, прошлая была аж в 1976 году.
Аппарат Луна-25 наконец был запущен c космодрома Восточный. Первый аппарат к Луне за 47 лет со времен запуска советской Луны-24. Аппарат проведет 5 дней на пути к Луне, затем должен 5-7 дней провести на орбите вокруг нашего естественного спутника а затем прилуниться в районе южного полюса Луны у кратера Богуславский. Есть еще два запасных места посадки. Если все пойдет по плану, на поверхности аппарат будет изучать верхний слой лунного реголита, искать признаки наличия льда в полярной области, и изучать очень слабую атмосферу.