Блог*
#video Anime Rock Paper Scissors (thanks @ffarnn) А как посмотрите — предлагаю посмотреть видео о том, как это создавалось.
#video
ANIME ROCK, PAPER, SCISSORS 2
Впечатляет, отчасти из-за увеличенного хронометража, отчасти из-за того, что удалосьсоздать убедительные молодые версии персонажей, сыгранных теми же взрослыми актёрами .
Но в некоторых аспектах это скорее шаг назад:именно, анимация рта серьёзно пострадала. Во многих сценах рот говорящего человека не шевелится, а в парочке сцен с крупным планом AI сделал персонажу два ряда зубов .
Ну и, конечно, видео о создании.
ANIME ROCK, PAPER, SCISSORS 2
Впечатляет, отчасти из-за увеличенного хронометража, отчасти из-за того, что удалось
Но в некоторых аспектах это скорее шаг назад:
Ну и, конечно, видео о создании.
YouTube
ANIME ROCK, PAPER, SCISSORS 2
With Your Support we can BRING EPISODE 3 TO LIFE! Join Us ► https://corridordigital.com/
Limited Edition Merch! https://corridordigital.store/
With the Kingdom now firmly in his grasp, King Philip faces the return of his twin brother Jules and a distant Barbarian…
Limited Edition Merch! https://corridordigital.store/
With the Kingdom now firmly in his grasp, King Philip faces the return of his twin brother Jules and a distant Barbarian…
Forwarded from Бэкдор
This media is not supported in your browser
VIEW IN TELEGRAM
Максимальный киберпанк: на базе нейронки Runway запустили телевидение. Это бесконечный стрим рандомных нейророликов и трейлеров, будто из параллельных вселенных.
Если смотрели «Рик и Морти» и помните Межвселенское ТВ — это оно. Залипать тут.
@whackdoor
Если смотрели «Рик и Морти» и помните Межвселенское ТВ — это оно. Залипать тут.
@whackdoor
🔥6
#prog #rust #rustlib
cargo-debstatus — инструмент для оценки того, насколько проект пригоден к опакечиванию в Debian.
cargo-deb — инструмент для собственно проведения этой операции.
cargo-dist — инструмент для автоматизации публикации новых релизов, с возможностью автоматически генерировать скрипты для релиза артефактов для CI:
For instance, enabling GitHub CI with
🔹Plan
🔸Waits for you to push a git tag for a new version (v1.0.0, my-app-v1.0.0, my-app/1.0.0, ...)
🔸Selects what apps in your workspace to announce new releases for based on that tag
🔸Generates a machine-readable manifest with changelogs and build plans
🔹Build
🔸Spins up machines for each platform you support
🔸Builds your binaries and tarballs
🔸Builds installers for your binaries
🔹Publish:
🔸Uploads to package managers
🔹Host + Announce:
🔸Creates (or edits) a GitHub Release
🔸Uploads build artifacts to the Release
🔸Adds relevant release notes from your RELEASES/CHANGELOG
cargo-debstatus — инструмент для оценки того, насколько проект пригоден к опакечиванию в Debian.
cargo-deb — инструмент для собственно проведения этой операции.
cargo-dist — инструмент для автоматизации публикации новых релизов, с возможностью автоматически генерировать скрипты для релиза артефактов для CI:
For instance, enabling GitHub CI with
cargo dist init
will generate release.yml, which implements the full pipeline of plan, build, host, publish, announce:🔹Plan
🔸Waits for you to push a git tag for a new version (v1.0.0, my-app-v1.0.0, my-app/1.0.0, ...)
🔸Selects what apps in your workspace to announce new releases for based on that tag
🔸Generates a machine-readable manifest with changelogs and build plans
🔹Build
🔸Spins up machines for each platform you support
🔸Builds your binaries and tarballs
🔸Builds installers for your binaries
🔹Publish:
🔸Uploads to package managers
🔹Host + Announce:
🔸Creates (or edits) a GitHub Release
🔸Uploads build artifacts to the Release
🔸Adds relevant release notes from your RELEASES/CHANGELOG
Lib.rs
cargo-debstatus — command-line utility in Rust
cargo-tree for debian packaging
👍3🔥1
#prog #rust #serde #article
Faster Rust Serialization
Или несколько советов о том, как делать меньше лишней работы при сериализации с использованием serde.
Faster Rust Serialization
Или несколько советов о том, как делать меньше лишней работы при сериализации с использованием serde.
Mo8It
Faster Rust Serialization
How to speed up serialization in Rust by more than 2x
👍4👎1
Блог*
А кстати, кто из подписчиков Блог*а сейчас в Армении?
Полгода прошло, так что повторю вопрос. Кто из подписчиков сейчас в Армении?
(Сова, про тебя я помню)
(Сова, про тебя я помню)
🤔2👍1😁1
#prog #article
Biased reference counting: minimizing atomic operations in garbage collection (pdf)
Счётчики ссылок можно считать формой сборщика мусора. Как вариант сборки мусора этот подход привлекателен низким оверхедом по памяти и короткими паузами. Однако при прямолинейном использовании этот подход даёт довольно большой оверхед по времени исполнения: ссылки создаются и уничтожаются всё время. Если используемые счётчики атомарные — что абсолютно необходимо для корректной работы в многопоточном окружении — то возня с ними может составить заметную долю общего времени исполнения программы.
Традиционные подходы к оптимизации RC полагались на оптимизации компилятора, которые позволяют убирать операции инкремента и декремента, соответствующие друг другу, или на разделение операций изменения счётчиков и освобождения мёртвых объектов. Авторы данной статьи предлагают новый подход. Именно, они подмечают, что в реальных программах доля объектов, разделяемых между потоками, крайне невелика, и потому предлагают разделить единый счётчик ссылок на два: один для подсчёта ссылок на потоке, которому объект принадлежит, и один для всех остальных потоков. Операции с первым счётчиком могут быть сделаны обычными, неатомарными операциями, что позволяет снизить долю времени исполнения на манипуляции со счётчиками.
Более подробно детали реализации — вместе с очередями объектов для обработки граничных случаев — описаны в папире. Авторы реализовали свой подход в рантайме языка Swift — который использует счётчики ссылок с оптимизациями компилятора и немедленным освобождением объектов — и замерили влияние на производительность программ. Результаты показали, что подход авторов заметно снижает общее время исполнения программ и увеличивает пропускную способность "серверных", многопоточных программ, при этом давая крайне небольшое увеличение пиковой потребляемой памяти.
We implemented BRC in the Swift programming language runtime and evaluated it with various client and server programs. We found that BRC accelerated non-deferred RC. Specifically, it reduced the average execution time of client programs by 22.5%, and improved the average throughput of server programs by 7.3%.
Авторы также сделали синтетический бенчмарк, который симулирует исполнение программы с большим количеством разделяемых между потоками объектов и обнаружили, что их подход становится хуже оригинального по производительности при доле разделяемых объектов около 75% от их общего числа.
Biased reference counting: minimizing atomic operations in garbage collection (pdf)
Счётчики ссылок можно считать формой сборщика мусора. Как вариант сборки мусора этот подход привлекателен низким оверхедом по памяти и короткими паузами. Однако при прямолинейном использовании этот подход даёт довольно большой оверхед по времени исполнения: ссылки создаются и уничтожаются всё время. Если используемые счётчики атомарные — что абсолютно необходимо для корректной работы в многопоточном окружении — то возня с ними может составить заметную долю общего времени исполнения программы.
Традиционные подходы к оптимизации RC полагались на оптимизации компилятора, которые позволяют убирать операции инкремента и декремента, соответствующие друг другу, или на разделение операций изменения счётчиков и освобождения мёртвых объектов. Авторы данной статьи предлагают новый подход. Именно, они подмечают, что в реальных программах доля объектов, разделяемых между потоками, крайне невелика, и потому предлагают разделить единый счётчик ссылок на два: один для подсчёта ссылок на потоке, которому объект принадлежит, и один для всех остальных потоков. Операции с первым счётчиком могут быть сделаны обычными, неатомарными операциями, что позволяет снизить долю времени исполнения на манипуляции со счётчиками.
Более подробно детали реализации — вместе с очередями объектов для обработки граничных случаев — описаны в папире. Авторы реализовали свой подход в рантайме языка Swift — который использует счётчики ссылок с оптимизациями компилятора и немедленным освобождением объектов — и замерили влияние на производительность программ. Результаты показали, что подход авторов заметно снижает общее время исполнения программ и увеличивает пропускную способность "серверных", многопоточных программ, при этом давая крайне небольшое увеличение пиковой потребляемой памяти.
We implemented BRC in the Swift programming language runtime and evaluated it with various client and server programs. We found that BRC accelerated non-deferred RC. Specifically, it reduced the average execution time of client programs by 22.5%, and improved the average throughput of server programs by 7.3%.
Авторы также сделали синтетический бенчмарк, который симулирует исполнение программы с большим количеством разделяемых между потоками объектов и обнаружили, что их подход становится хуже оригинального по производительности при доле разделяемых объектов около 75% от их общего числа.
🔥5👍2🤔1
Блог*
#prog #article Biased reference counting: minimizing atomic operations in garbage collection (pdf) Счётчики ссылок можно считать формой сборщика мусора. Как вариант сборки мусора этот подход привлекателен низким оверхедом по памяти и короткими паузами. Однако…
В 2019 году группа исследователей реализовала PCIe драйвера на широком наборе языков и выкатила папир по результатам исследования. Про Swift там было сказано следующее:
Swift increments a reference counter for each object passed into a function and decreases it when leaving the function. This is done for every single packet as they are wrapped in Swift-native wrappers for bounds checks. There is no good way to disable this behavior for the wrapper objects while maintaining an idiomatic API for applications using the driver. A total of 76% of the CPU time is spent incrementing and decrementing reference counters. This is the only language runtime evaluated here that incurs a large cost even for objects that are never free’d
Это, судя по всему, наихудший случай для ARC в Swift, ибо в реальных программа доля времени исполнения, занятая из изменениями счётчиков, меньше. Но даже в реальных программах эта доля нетривиальна.
Swift increments a reference counter for each object passed into a function and decreases it when leaving the function. This is done for every single packet as they are wrapped in Swift-native wrappers for bounds checks. There is no good way to disable this behavior for the wrapper objects while maintaining an idiomatic API for applications using the driver. A total of 76% of the CPU time is spent incrementing and decrementing reference counters. This is the only language runtime evaluated here that incurs a large cost even for objects that are never free’d
Это, судя по всему, наихудший случай для ARC в Swift, ибо в реальных программа доля времени исполнения, занятая из изменениями счётчиков, меньше. Но даже в реальных программах эта доля нетривиальна.
GitHub
GitHub - ixy-languages/ixy-languages: A high-speed network driver written in C, Rust, C++, Go, C#, Java, OCaml, Haskell, Swift…
A high-speed network driver written in C, Rust, C++, Go, C#, Java, OCaml, Haskell, Swift, Javascript, and Python - ixy-languages/ixy-languages
❤1