PDA

Просмотр полной версии : [Вопрос] Размер форматируемой строки



PawnoNoob
18.12.2016, 13:39
Приветствую! Появился вопрос по поводу "оптимизации" :wizard:, а именно по поводу подсчёта размера форматируемой строки. Чем лучше использовать static const и какие преимущества от этого?

DeimoS
18.12.2016, 14:16
А если воспользоваться поиском по форуму? Есть тема (http://pro-pawn.ru/showthread.php?13388-%D0%9F%D0%BE%D0%B4%D1%81%D1%87%D1%91%D1%82-%D1%80%D0%B0%D0%B7%D0%BC%D0%B5%D1%80%D0%B0-%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%82%D0%B8%D1%80%D1%83%D0%B5%D0%BC%D0%BE%D0%B9-%D1%81%D1%82%D1%80%D0%BE%D0%BA%D0%B8), в которой всё описывается. А до этого ещё раз 10 обсуждались все варианты подсчёта размера строки в других темах.

StevenH
18.12.2016, 14:58
Если ты знаешь, что например в слове Привет - 7 ячеек (с null символов), тогда смело ставь new string[7], и не надо считать автоподсчетом строк.

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


Для покупки этого уровня, вам не хватает %d EXP

Максимально тут может быть 46 + 4 = 50 ячеек, если ты правильно можешь это САМ подсчитать, тогда выставляй сразу сколько необходимо ячеек..

Пельмень
20.12.2016, 17:50
2017 год, учимся экономить байты памяти, не смешно?

DeimoS
20.12.2016, 19:46
2017 год, учимся экономить байты памяти, не смешно?

С таким подходом можно под строку в 10 символов выделять 1000 ячеек. Памяти ведь много. Только надолго её хватит с таким подходом?

Тут никто не пытается чрезмерно экономить. Автор спрашивает то, как выделять столько, сколько нужно. Если в 2017 году умение работать с памятью вышло из моды, то остановите планету, я сойду

qwezert
21.12.2016, 11:49
С таким подходом можно под строку в 10 символов выделять 1000 ячеек. Памяти ведь много. Только надолго её хватит с таким подходом?

Тут никто не пытается чрезмерно экономить. Автор спрашивает то, как выделять столько, сколько нужно. Если в 2017 году умение работать с памятью вышло из моды, то остановите планету, я сойду

С одной стороны он тоже прав,сейчас хостинг машины в 100 раз мощнее чем когда выходила СА. Слишком загоняться по экономии памяти тоже особо следует. С другой стороны - это вопрос удобности и оптимизации. Я лично по разному всегда расчитываю сколько нужно памяти, когда просто примерно пишу, а когда прибавляю длину и т.д. В общем я бы тоже сказал что в 2017 ганяться за памятью не очень хорошая идея, хотя уметь и знать это - очень полезный навык.

DeimoS
22.12.2016, 01:10
С одной стороны он тоже прав,сейчас хостинг машины в 100 раз мощнее чем когда выходила СА. Слишком загоняться по экономии памяти тоже особо следует. С другой стороны - это вопрос удобности и оптимизации. Я лично по разному всегда расчитываю сколько нужно памяти, когда просто примерно пишу, а когда прибавляю длину и т.д.

Указывать размер на глаз, при этом понимая как всё работает и указывать размер рандомно, не понимая как всё работает - вещи разные и последствия, соответственно, для каждого подхода свои. Кухонным ножом можно как нарезать хлеб, так и убить человека. Всё упирается в знание того, как всё работает и почему именно так.


В общем я бы тоже сказал что в 2017 ганяться за памятью не очень хорошая идея

В 2017, как и в любом другом году, следует писать логически верно построенный код, который работает так, как должен работать и потреблять столько, сколько должен потреблять. И тогда не нужно будет подключать сверхбыстрые костыли, в попытках скрыть плоды своей лени и криворукости. И от того, что ты сэкономишь память, хуже не будет. А вот если будешь бесконтрольно её выделять - последствия не заставят себя долго ждать.

qwezert
22.12.2016, 12:24
Я полностью согласен, но я о том что ударятся с головой в оптимизацию что бы сэкономить лишних 10 байт - это не есть правильно. Понимать как это все работает - конечно да, но не забивать себе особо голову насчет этого. В SAMP и павн и без того куча других проблем :)

DeimoS
22.12.2016, 13:28
Я полностью согласен, но я о том что ударятся с головой в оптимизацию что бы сэкономить лишних 10 байт - это не есть правильно. Понимать как это все работает - конечно да, но не забивать себе особо голову насчет этого. В SAMP и павн и без того куча других проблем :)

Так а где речь шла о том, чтоб экономить лишние 10 байт обязательно?