Size: a a a

Ассемблер

2021 June 09

DF

Dollar Føølish in Ассемблер
кек
источник

АШ

Алексей Шведов... in Ассемблер
Кто может ссылаться в пустую выделенную память моей секции?
источник

s

s54816 in Ассемблер
Если это твой код, зачем тебе в середину байты втыкать?
источник

АШ

Алексей Шведов... in Ассемблер
Чтобы выделить там место...
источник

DF

Dollar Føølish in Ассемблер
поверь мне обычная арена будет быстрее работать
источник

АШ

Алексей Шведов... in Ассемблер
Что ещё за "арена"?
источник

s

s54816 in Ассемблер
Зачем тебе втыкать в середину кода байты, чтобы выделить там место?
источник

АШ

Алексей Шведов... in Ассемблер
Не в середину. В секции есть изначально выделенное место, туда я и могу впихнуть что-то, а потом заполнить нулями, как ничего не бывало
источник

s

s54816 in Ассемблер
Ты вот тут двигаешь куски кода зачем-то. Пока я совершенно не понимаю, что ты пытаешься изобрести, но я практически уверен, что ты делаешь это неправильно.

Фиг с ней, с ареной, просто запоминай офсет первого свободного байта после всего кода, данных или чего там у тебя ещё лежит, зачем ты в середину-то ползёшь? Адрес начала пустой области, адрес конца. Выделил — увеличил первый адрес. Это если освобождать не нужно. Если нужно освобождать, делаешь связный список блоков с маркером занят-не занят и размером, при выделении у кого-нибудь отрезаешь кусок, при освобождении склеиваешь рядом стоящие пустые блоки. Но это уже совсем не три строчки, и либо будет дикая фрагментация, либо работать будет медленно. Поэтому лучше попросить системный менеджер кучи сделать это правильно, его умные люди писали.
источник

АШ

Алексей Шведов... in Ассемблер
Я сравнил тики до вызова системной библиотеки, и после, и в итоге из-за них портится скорость. Лучше всего вообще обойтись сисколами, если бы они не менялись с каждым релизом
источник

АШ

Алексей Шведов... in Ассемблер
Ну ладно, вопрос, вроде, уже решён. Сделал как выше
источник

s

s54816 in Ассемблер
Это от сисколов портится скорость ;-) Ядро — это дорого.
источник

DF

Dollar Føølish in Ассемблер
+++
источник

DF

Dollar Føølish in Ассемблер
tlb выбивает подчистую
источник

АШ

Алексей Шведов... in Ассемблер
Нет, сисколл вроде быстрее возвращается, чем через юзерспейс библиотеку. По крайней мере, там же проверок куча
источник

s

s54816 in Ассемблер
А в ядре проверок нет, ага.
источник

АШ

Алексей Шведов... in Ассемблер
Ну так хотя бы одна, а не 3-4
источник

D

Dark_Bull in Ассемблер
проверки нужны, чтобы ты себе ногу не отстрелил
источник

АШ

Алексей Шведов... in Ассемблер
Это понятно. Но я-то знаю, что делаю, и вот эти проверки мне только портят скорость. В иных случаях они нужны
источник

s

s54816 in Ассемблер
Мы сейчас точно про Windows говорим? Какие 3-4? Там (в ядре) огромная куча механизмов, и каждый проверяет, что его используют правильно. Это помимо основной задачи, ради которой ты системный вызов дёрнул.
источник