Поскольку я изучаю системы баз данных для получения степени магистра в Германии, статья с названием «Why German Strings are Everywhere» сразу привлекла мое внимание. Мне было интересно узнать, что речь идет о структуре данных, описанной в статье «Umbra: A Disk‑Based System with In‑Memory Performance», о которой я узнал из другой статьи о её движке хранилища — «LeanStore: In‑Memory Data Management Beyond Main Memory». Еще более интересным было то, что она используется во многих других решениях для хранения данных, таких как Читать полностью »
Рубрика «unsafe»
Оптимизация, которая невозможна в Rust
2024-09-13 в 9:01, admin, рубрики: dst, german string, Rust, umbra string, unsafeЧто значит unsafe в Rust?
2019-07-16 в 16:37, admin, рубрики: Rust, unsafe, многопоточность, перевод, системное программированиеПривет! Представляю вашему вниманию перевод статьи "What Is Rust's unsafe?" автора Nora Codes.
Мне доводилось видеть много недопониманий относительно того, что значит ключевое слово unsafe для полезности и правильности языка Rust и его продвижения как "безопасного языка системного программирования". Правда намного сложнее, чем можно описать в коротком твите, к сожалению. Вот как я ее вижу.
В целом, ключевое слово unsafe не выключает систему типов, которая поддерживает код на Rust корректным. Она только дает возможность использовать некоторые "суперспособности", такие как разыменование указателей. unsafe используется для реализации безопасных абстракций на основе фундаментально небезопасного мира, чтобы большая часть кода на Rust могла использовать эти абстракции и избегать небезопасного доступа к памяти.Читать полностью »
[DotNetBook] Span: новый тип данных .NET
2018-08-01 в 13:15, admin, рубрики: .net, C#, clrbook, memory, memory management, span, unsafe
С этой статьей я продолжаю публиковать целую серию статей, результатом которой будет книга по работе .NET CLR, и .NET в целом (уже готово около 200 страниц книги, так что добро пожаловать в конец статьи за ссылками).
Как язык, так и платформа существуют уже много лет: и все это время существовало множество средств для работы с неуправляемым кодом. Так почему же сейчас выходит очередной API для работы с неуправляемым кодом если по сути он существовал уже много-много лет? Для того чтобы ответить на этот вопрос достаточно понять чего не хватало нам раньше.
Разработчики платформы и раньше пытались нам помочь скрасить будни разработки с использованием неуправляемых ресурсов: это и автоматические врапперы для импортируемых методов. И маршаллинг, который в большинстве случаев работатет автоматически. Это также инструкция stackallloc
, о которой говорится в главе про стек потока. Однако, как по мне если ранние разработчики с использованием языка C# приходили из мира C++ (как сделал это и я), то сейчас они приходят из более высокоуровневых языков (я, например, знаю разработчика, который пришел из JavaScript). А что это означает? Это означает что люди со все большим подозрением начинают относиться к неуправляемым ресурсам и конструкциям, близким по духу к C/C++ и уж тем более — к языку Ассемблера.
Статья хоть и большая, но является вводной в тему
Span<T>
иMemory<T>
. Планируется что выйдет еще две: первая проMemory<T>, MemoryManager<T>, MemoryHandler<T>
иMemoryPool<T>
. Вторая — про низкоуровневые особенности и вопросы кSpan<T>
иMemory<T>
.
Кроссплатформенная новогодняя демка на .NET Core и Avalonia
2017-12-29 в 7:44, admin, рубрики: .net, .net core, avalonia, C#, GUI, linux, MacOS, UI, unsafe, wpf, XAML, ненормальное программирование, Программирование, Разработка под Linux"ААА! Пришло время переписывать на .NET Coreǃ", говорили они, WPF в комментариях обсуждали. Так давайте же проверим, можно ли написать кросс-платформенное GUI приложение на .NET / C#.
Новогоднее настроение навеяло идею сделать анимацию падающего снега. Были такие демки под DOS, горящий огонь, фракталы, снежок, падающий на ёлочку, и так далее.
Как увидим ниже, это не только весело, но и позволит испытать ключевой функционал UI фреймворка. Поехали!
Инстанцируем java.lang.Class
2017-11-12 в 14:24, admin, рубрики: bytecode, java, magic, methodhandles, reflection, unsafe, ненормальное программирование
Конструктор java.lang.Class
является одной из самых охраняемых сущностей в языке Java. В спецификации чётко сказано, что объекты типа Class
может создавать только сама JRE и что нам тут делать нечего, но так ли это на самом деле?
Предлагаю погрузиться в глубины Reflection API (и не только) и выяснить, как там всё устроено и насколько трудно будет обойти имеющиеся ограничения.
Unsafe продолжает жить в Java 9
2017-02-28 в 10:57, admin, рубрики: java, java 9, unsafe, ПрограммированиеС началом работы над Java 9 было анонсировано удаление критически важных классов из пакетов sun.* (понятное дело Sun, а в последствии и Oracle заявляли, что их использование является собственным риском компаний и проектов), что вызвало шквал критики и недовольства со стороны сообщества (ибо highload решения для которых производительность это все, используют скрытые возможности sun.*). Предыстория началась 15 лет назад с выходом версии языка 1.4, за это время большое количество библиотек, фреймворков, приложений успели внедрить закрытый код в свой.
Вот только не полный перечень проектов, которые у всех на слуху: Scala, Kafka, Akka, Hadoop, Cassandra, Hazlecast и прочие…
Читать полностью »
«Любое техническое изменение должно отвечать на вопрос «зачем?» — Одноклассники о Java и не только
2016-10-13 в 12:04, admin, рубрики: data mining, data science, highload, java, smart data, unsafe, Блог компании JUG.ru Group, Блог компании Одноклассники, высокая производительность, одноклассники
Как в Одноклассниках использование sun.misc.Unsafe сочетается с повышенными требованиями к надёжности? Почему там дорабатывали систему мониторинга Cacti? Как работа в ОК пересекается с научной деятельностью? Если соцсеть называется «Одноклассники», то состоит ли весь её Java-код из одного класса?
Ответы на эти и другие вопросы — в нашем посте. В преддверии Joker, где сразу трое сотрудников ОК будут спикерами, а ещё один участвует в программном комитете, мы расспросили всех четверых — и не только их. На наши вопросы ответили:
- Олег Анастасьев, ведущий разработчик (участник программного комитета Joker 2016)
- Андрей Паньгин, ведущий разработчик (спикер Joker 2016)
- Виталий Худобахшов, ведущий аналитик (спикер Joker 2016)
- Дмитрий Бугайченко, инженер-аналитик (спикер Joker 2016)
- Андрей Губа, заместитель технического директора
- Кристина Штейнберга, руководитель отдела персонала
Вспомнить всё: Java-конференция JET. 28 сентября 2015. Отчёт
2016-03-16 в 1:08, admin, рубрики: akka, ast transformations, data mining, groovy, java, jet, jvm, rate-limit, scala, scalan, scalaz, spring framework, tdd, unsafe, метки: jet Меня зовут Дима и я разработчик. Живу в Минске, люблю посещать зарубежные конференции. Ну вот устал однажды ездить и решил сходить локально. Но выбора было мало. Поэтому вдвоём со своим верным товарищем решили сделать конференцию самостоятельно.
Назвали JET. Потому что начинается с J, как и Java, а ещё можно сделать слоган "Let's fly to Java world". Ну что же, как это было?
Открытие
Началось все с выступления организаторов, где мы поделились тем, как зарождалась идея конференции. Рассказали о том, как мы прошли путь в 4 месяца подготовки, и что по итогу получилось. А получилось — 3 потока концентрированных знаний, 300 участников и первый кирпичик в фундаменте дома конференции JET.