SA-MP Forums Archive
string`и - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Русский/Russian (https://sampforum.blast.hk/forumdisplay.php?fid=32)
+---- Thread: string`и (/showthread.php?tid=632351)



string`и - pozitiv4eg - 12.04.2017

Вообщем заинтересовался оптимизацией.
Вообщем вопрос такой...
Скачал мод с паблика, и вижу следующую картину, в каждом новой функции создаются массивы 144, 128, 512 ячеек, не суть. Вопрос!? Как же уменьшить количество создаваемых стрингов?
Пример как было?
PHP Code:
public result() { new str[128]; SCM(-1,pi,str) }
public 
value(){new str[128]; SCM(-1,pi,str)} 
Поможет ли это?
PHP Code:
new str[127];
public 
value(){ SCM(-1,pi,str)}
public 
result(){ SCM(-1,pi,str)} 
Какие могут быть ошибки если использовать единый стринг?
Что еще кроме стрингов советуете посмотреть?


Re: string`и - Stepashka - 12.04.2017

Это не оптимизация, это экономия памяти.


Re: string`и - VVWVV - 12.04.2017

Quote:
Originally Posted by Stepashka
View Post
Это не оптимизация, это экономия памяти.
Экономия памяти - это оптимизация.


Re: string`и - pozitiv4eg - 13.04.2017

Так что ещё посоветуете посмотреть кроме строк ?


Re: string`и - Eims - 13.04.2017

Касаемо примеров: лучше уж подсчитать то, сколько реально требуется ячеек в массиве для хранения текста, а не то, что ты делаешь.

А посмотреть советую то, как реализованы системы и подумать как можно реализовать всё лучше


Re: string`и - Stepashka - 13.04.2017

Quote:
Originally Posted by pozitiv4eg
View Post
Так что ещё посоветуете посмотреть кроме строк ?
Посмотри меня, посмотри меня!


Re: string`и - Bombo - 13.04.2017

Странно говорить об оптимизации в данном контексте, т.к. память под переменные, описанные внутри функций, выделяется из стека. Размер стека остаётся неизменным на протяжении всего времени работы программы (скрипта). И, если этого объёма достаточно для выполнения, то ничего выносить в область глобальных переменных не требуется. Если же объёма не хватает, то нужно его увеличить. Глобальными же лучше делать большие массивы (1к и более), но нужно помнить, что при этом увеличивается размер *.amx файла.