PDA

Просмотр полной версии : [Вопрос] Ребят подскажите нормальная статистика к моду с 0 15 000 строк ?



ALIT13
23.01.2016, 20:49
Ребят подскажите нормальная статистика к моду с 0 15 000 строк ?

Header size: 10788 bytes
Code size: 692172 bytes
Data size: 2014708 bytes
Stack/heap size: 16384 bytes; estimated max. usage=3043 cells (12172 bytes)
Total requirements: 2734052 bytes

Done.

$continue$
23.01.2016, 21:08
Ребят подскажите нормальная статистика к моду с 0 15 000 строк ?

Header size: 10788 bytes
Code size: 692172 bytes
Data size: 2014708 bytes
Stack/heap size: 16384 bytes; estimated max. usage=3043 cells (12172 bytes)
Total requirements: 2734052 bytes

Done.

Ребят, а подскажите сколько завтра будет стоить: нефть/доллар/евро?



Вряд ли есть какая то "статистика" о заполненых "ресурсах".
Жаль что компилятор pawncc не умеет оптимизировать код, заменять рекурсию на циклы, объявлять переменную для strlen, когда strlen используеться в циклах (Ибо при каждой итерации - strlen вызываться заного)

GCC (GNU Compiler Collection), Microsoft Compiler (честно, говоря, хз какой компилятор преобразует код в среде разработки - VIsual Studio).
Но, они умеют оптимизировать код. Pawncc - почти этого не умеет. Увы.

ALIT13
23.01.2016, 21:13
Ребят, а подскажите сколько завтра будет стоить: нефть/доллар/евро?



Вряд ли есть какая то "статистика" о заполненых "ресурсах".
Жаль что компилятор pawncc не умеет оптимизировать код, заменять рекурсию на циклы, объявлять переменную для strlen, когда strlen используеться в циклах (Ибо при каждой итерации - strlen вызываться заного)

GCC (GNU Compiler Collection), Microsoft Compiler (честно, говоря, хз какой компилятор преобразует код в среде разработки - VIsual Studio).
Но, они умеют оптимизировать код. Pawncc - почти этого не умеет. Увы.

ну а так по

Header size: 10788 bytes
Code size: 692172 bytes
Data size: 2014708 bytes
Stack/heap size: 16384 bytes; estimated max. usage=3043 cells (12172 bytes)
Total requirements: 2734052 bytes
до лемита далеко ещё ?

DeimoS
23.01.2016, 21:28
4212 байт свободного места в стеке ещё есть. Это всё, что я могу тебе сказать. А определить качество твоего кода по данным о ресурсах невозможно. Как минимум, потому, что все 10000 из 15000 у тебя могут занимать лишь одни объекты, а потом начинается жуткий говнокод, а может быть и наоборот: код прекрасный и потребляет он столько только потому, что иначе не реализовать никак

seriu
24.01.2016, 17:19
Как уже было сказано выше

Вряд ли есть какая то "статистика" о заполненных "ресурсах".

можешь сравнить с моими "общими требованиями".


Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase

Header size: 8288 bytes
Code size: 475408 bytes
Data size: 1671072 bytes
Stack/heap size: 16384 bytes; estimated max. usage=1170 cells (4680 bytes)
Total requirements: 2171152 bytes

Done.

строк в моде: 9629, п.с объектов и т.п. нету онли код

Global TextDraw 65
Player TextDraw 10

Переменные для всех игроков 141
bool = 8
Float = 13
string = 6
2 по 24 // pName[24] and pReferal[24]
4 по 16 // pRIP[16],pLIP[16],pIP[16],pRegDate[16]

Для всех машин 9 из которых 3 bool, остальные int
Естественно есть еще пару переменных не для игроков, массивы и т.п.
Но думаю данных значений вполне должно хватить для сравнения.
п.с с учётом того что я еще не совсем "pro" скриптер, павно я знаю так скажем на уровне, но ни как не на профессиональном.
скажем так мне моих знаний хватает что-бы написать нормальный код.

L0ndl3m
24.01.2016, 17:43
Но, они умеют оптимизировать код. Pawncc - почти этого не умеет. Увы.
Нашёл что сравнивать. В самых ранних версиях Visual Studio тоже не было оптимизации кода.

Daniel_Cortez
24.01.2016, 19:06
Microsoft Compiler (честно, говоря, хз какой компилятор преобразует код в среде разработки - VIsual Studio)
MSVC.



Жаль что компилятор pawncc не умеет (...) объявлять переменную для strlen, когда strlen используеться в циклах (Ибо при каждой итерации - strlen вызываться заного)
Этого и сейчас ни один компилятор не умеет. По крайней мере, я ни разу не слышал о таких.
Сложность в том, что компилятор не может узнать, что делает та или иная функция, реализованная за пределами компилируемого модуля.
То же самое и с компилятором Pawn: функция strlen реализована где-то в коде сервера и компилятор не может знать, что она делает. Может, она как-то модифицирует передаваемую строку? Да
ИМХО, самый простой способ научить компилятор Pawn эффективно оптимизировать код - сделать оптимизацию с помощью LLVM, прикрутив к нему бэкенд для генерации кода в формате AMX.



Нашёл что сравнивать. В самых ранних версиях Visual Studio тоже не было оптимизации кода.
Эти "самые ранние версии" уже давно никто не использует. Нужно жить сегодняшним днём.
Напомнило про одного индивидуума, который всё утверждал, что в MTA есть читы (на тот момент дыру в защите уже залатали в новой версии), аргументируя тем, что они есть, пока существуют старые уязвимые версии MTA.

$continue$
24.01.2016, 22:32
Этого и сейчас ни один компилятор не умеет. По крайней мере, я ни разу не слышал о таких.


Ещё вчера пытался найти данный пост, но не смог. Думал, сначала что этот пост находился на хабре. А потом вспомнил, что на "типичном программисте".
Вообщем: тык (http://tproger.ru/translations/will-it-optimize-gcc/)

Daniel_Cortez
24.01.2016, 22:55
Ещё вчера пытался найти данный пост, но не смог. Думал, сначала что этот пост находился на хабре. А потом вспомнил, что на "типичном программисте".
Вообщем: тык (http://tproger.ru/translations/will-it-optimize-gcc/)
Эта оптимизация справедлива только для небольшого множества простых функций (strlen, memcpy, memset, etc.), вызовы которых легко заменить на пару-тройку процессорных инструкций, для остальных функций такая оптимизация не работает.
Да и к компилятору Pawn вряд ли можно прикрутить что-то подобное: вызов нативной функции strlen будет быстрее, чем сделанный на Pawn цикл по всем позициям в строке. Такая оптимизация есть разве что в плагине JIT для функций float, floatcmp, floatadd и т.д. и можно добавить туда строковые функции.