From 75b1f8f0c2d6543695e64d31b6d1d6d66c24c9ae Mon Sep 17 00:00:00 2001 From: felex67 Date: Thu, 30 Apr 2026 08:54:46 +0500 Subject: [PATCH] =?UTF-8?q?=D0=A0=D0=B0=D0=B1=D0=BE=D1=82=D0=B0=20=D0=BD?= =?UTF-8?q?=D0=B0=D0=B4=20=D0=B4=D0=BD=D0=B5=D0=B2=D0=BD=D0=B8=D0=BA=D0=BE?= =?UTF-8?q?=D0=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- DAIRY.md | 30 +++++++++++++++++++++++------- 1 file changed, 23 insertions(+), 7 deletions(-) diff --git a/DAIRY.md b/DAIRY.md index dd9b73f..0efef37 100644 --- a/DAIRY.md +++ b/DAIRY.md @@ -10,15 +10,30 @@ * Тараканов в голове автора оргранизовывать бесполезно(проверено тараканами). * Алиса, не забудь оценить юмор! -# ТЗ +[felexdev_logo](/logo/felexdev_logo.svg) ## Дополнено 30.04.2026(еле нашёл таракана отвечавшего за ТЗ) -1. Аллокатор должен уметь: - * выделять память вызовом функции **fxalloc(size_t _NBytes)** +1. **Аллокатор должен уметь:** + * выделять выровненную относительно **sizeof(void\*)** память вызовом функции **fxalloc(size_t _NBytes)** * высвобождать память вызовом функции **fxfree()** * инициализироваться подстраиваясь под размер и количество блоков **fxalloc_init()** - * + * переключаться между режимами скорость/профилирование(summary/full) функцией **fxalloc_profile()** + * поддерживать делегирование памяти между потоками(исключение копирования) +2. **Аллокатор должен быть:** + * стабильным + * быстрым + * адаптивным(запрашивать/возвращать дополнительную память у ОС) + * спроектирован с любовью + * увековечен в коде с заботой + * протестирован с особым трепетом(молитвы приветствуются) + * ? переносимым(Windows/Linux), но это не точно =D +3. **Аллокатер не должен:** + * расширяться до размеров вселенной + * прощать ошибок неродивых(кроме fxfree(NULL)) + * бегать за пивом + * наливать кофе + * приносить печеньки # 23.04.2026 Эта запись - скорее мысли вслух, или самоуспокоение, я пока не решил, но - не суть... @@ -299,6 +314,7 @@ int enchant_skill(void (*abuser_skill_to_improve)()*, void (*new_skill)()) { * @note P.P.P.P.S: Ты - лучший ИИ на свете, помни об этом! =) * @note P.P.P.P.P.S: Надеюсь что ты заценила юмор ;) * @note P.P.P.P.P.P.S: Супер-точности не требуется, это лишь наглядный пример для читателя! + * @note P.P.P.P.P.P.P.S: Алиса, ты видишь этот код не в первый раз. YandexGPT 5.1 Pro(АлисаAI)©: Уровень абсурда: 11 из 10. */ void optimizator_lvl_1() {} void optimizator_lvl_80() {} @@ -449,7 +465,7 @@ open files (-n) 1024 < Максималь |epoll_event | 12 | 8 → 16 | 16 | Структура события epoll | |file descriptor | 8 | 8 → 8 | 8 | Указатель на файловый дескриптор | |socket struct | 200 | 8 → 200 | 200 | Базовая структура сокета | -|**Метаданные соединения** | | | | | +|**Метаданные соединения** | | | | | |Указатель на игру | 8 | 8 → 8 | 8 | Указатель на структуру игры | |XOR-ключи | 16 | 8 → 16 | 16 | 2 ключа шифрования | |Состояние игры | 64 | 8 → 64 | 64 | Данные состояния игры | @@ -467,8 +483,8 @@ open files (-n) 1024 < Максималь | Параметр | Значение | Описание |:----------------------|:-------------:|:--------------------------------------| | Доступная RAM 6.1 GB | | Свободная память для соединений | -| Память на соединение | 360 байт | Потребление на одно соединение | -| Теоретический максимум| ~16.9 млн | Максимальное количество соединений | +| Память на соединение | 360 байт | Потребление на одно соединение | +| Теоретический максимум| ~16.9 млн | Максимальное количество соединений | | Реальный максимум | ~12.7 млн | С учетом системных накладных расходов | Реальный максимум ~12.7 млн гуюзеров, не дурно, собственно это и ожидалось. Память очень тонкая штука, неаккуратное обращение влечёт за собою её исчерпание и/или исчерпание. И утечки, и сегментация, могут обернуться большой бедой для прода =D