Обновить
1
0

Пользователь

Отправить сообщение

Я в свои 15 лет тоже написал собственный контейнер для POD-типов на C++, где я сделал выделение памяти при помощи malloc и дальнейшим заполнением. Я сделал много полезных функций, например, функцию для сдвига хвоста, чтобы можно было вставлять новые элементы, без создания промежуточных буферов. Рост у меня в коде - экспоненциальный, как и в vector. Главное у этого контейнера достаточно большая эффективность, я заменил тот код, где у меня был конвейер для создания промежуточного буфера с вершинами, а затем его вставка при помощи insert, заменив на новую функцию я получил прирост в скорости в 2,5 раза, так как вершины вставлялись сразу на своё место.

Мне 15 лет, я тоже поначалу пытался написать свой язык, но потом забил и написал на C++ + SFML язык для встраивания любых файлов в картинку, в моëм языке всего 4 функции: pack(путь к файлу), unpack(путь к файлу), start(путь к файлу, можно просто указать какое-либо приложение) и console(любая команда). При открытии изображения в одном потоке находится встроенная часть, затем копируется в папку и запускается непосредственно из неë, а из изображения создаëтся буфер и отрисовывается. Если вы встроили только команду, то произойдëт еë обработка (_wsystem под капотом). Но я этот язык написал за один день, а вот графический текст (я его тоже сам реализовал) я писал достаточно много времени. Сейчас я занимаюсь написанием нового графического текста для наиболее быстрого обновления вершин. Мне придëтся даже писать обновление при помощи SIMD-регистров, так как они могут параллельно обрабатывать сразу много вершин, но из-за этого мне придëтся написать несколько функций (под 128, 256, 512 битные регистры) и определять при помощи cpuid, какие регистры вообще можно использовать на устройстве пользователя. Много работы, уже голова болит.

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность

Специализация

Специалист
C++