SA-MP Forums

Go Back   SA-MP Forums > Non-English > Languages > Русский/Russian

Reply
 
Thread Tools Display Modes
Old 05/05/2015, 03:36 PM   #1
ZaR
Big Clucker
 
Join Date: Sep 2009
Posts: 157
Reputation: 1
Default Отсылка жирного HTTP-запрсоа

Подкосила меня жизнь, внезапно нужно написать небольшой кусок кода.

Я вкратце почитал стандарт Pawn (совсем мельком) и быстро не нашёл как и где выделяется память при использовании оператора new. Тем не менее, мне нужно сформировать большой массив данных и отправить их по HTTP.
При задании размера массива в 4096 (байт же?) этот ваш странный интерпретатор очень странно себя ведёт, не выполняя ничего (есть у меня предположение, что я стек таким образом переполняю). Тогда вопрос -- есть ли возможность в каком-то heap'е, если он вообще есть, выделять место?

Или же простой скриптовый язык никак не подразумевает работу с памятью?

Прошу прощения, что не уделил достаточного времени на изучение стандарта, совсем времени свободного нет.
Писать плагин, конечно, можно, но не хочется.

Спасибо.
__________________
ZaR is offline   Reply With Quote
Old 05/05/2015, 03:42 PM   #2
stabker
High-roller
 
Join Date: Mar 2012
Posts: 1,311
Reputation: 86
Default Re: Отсылка жирного HTTP-запрсоа

Память выделяется из стека. Размер стека можно увеличить так: #pragma dynamic количество_байт

Если речь о new array[4096], то это 4096 ячеек по 4 байта, а не 4096 байт (т.е. 4096 * 4 = 16384).
stabker is offline   Reply With Quote
Old 05/05/2015, 03:54 PM   #3
ZaR
Big Clucker
 
Join Date: Sep 2009
Posts: 157
Reputation: 1
Default Re: Отсылка жирного HTTP-запрсоа

Спасибо.

Отлично, а 4 байта -- это по размеру int'а на целевой системе?
Но да ладно, string'и умеют паковаться, верно, судя по стандарту.
Оно нормально работает (или работает ли вообще) на данной версии Pawn-интерпретатора?

Ну и главный таки вопрос был -- а в heap'е-то мы можем выделять что-нибудь?
16 килобайт мне всё равно не хватит.
__________________
ZaR is offline   Reply With Quote
Old 05/05/2015, 04:06 PM   #4
ZiGGi
Banned
 
Join Date: Sep 2008
Location: Russia
Posts: 1,659
Reputation: 356
Default Re: Отсылка жирного HTTP-запрсоа

Создавай эту переменную глобально, ничего выделять не придётся. Но если ты имеешь ввиду выделение памяти динамически, то нет, без сторонних плагинов ничего не выйдет.
Запаковка работает нормально.
ZiGGi is offline   Reply With Quote
Old 05/05/2015, 04:51 PM   #5
White_116
High-roller
 
Join Date: Sep 2010
Location: Russia/116
Posts: 1,495
Reputation: 69
Default Re: Отсылка жирного HTTP-запрсоа

Quote:
Originally Posted by ZiGGi View Post
Создавай эту переменную глобально, ничего выделять не придётся. Но если ты имеешь ввиду выделение памяти динамически, то нет, без сторонних плагинов ничего не выйдет.
Запаковка работает нормально.
Без плагинов можно, но достаточно медленно всё это при больших объёмах.
http://forum.sa-mp.com/showthread.php?t=137501
__________________
White_116 is offline   Reply With Quote
Old 05/05/2015, 05:01 PM   #6
ZiGGi
Banned
 
Join Date: Sep 2008
Location: Russia
Posts: 1,659
Reputation: 356
Default Re: Отсылка жирного HTTP-запрсоа

Quote:
Originally Posted by White_116 View Post
Без плагинов можно, но достаточно медленно всё это при больших объёмах.
http://forum.sa-mp.com/showthread.php?t=137501
*property - это не то, я имел ввиду что-то вроде этого: https://forum.sa-mp.com/showthread.php?t=451381
ZiGGi is offline   Reply With Quote
Old 05/05/2015, 07:12 PM   #7
ZaR
Big Clucker
 
Join Date: Sep 2009
Posts: 157
Reputation: 1
Default Re: Отсылка жирного HTTP-запрсоа

Чо-т жесть какая-то.

Мне нужно отправить жирный запрос -- дамп БД (не спрашивайте, зачем). 200 символов в среднем на запись в БД (с учётом, что все unicode-символы подверглись urlencode'у) -- получается уже 800 байт, то есть чёрт побери 1 килобайт на запись. Записей -- допустим, 5к. 5 мегабайт в оперативной памяти, которая отжирает глобальная переменная -- это жесть.
__________________
ZaR is offline   Reply With Quote
Old 05/05/2015, 08:04 PM   #8
ZiGGi
Banned
 
Join Date: Sep 2008
Location: Russia
Posts: 1,659
Reputation: 356
Default Re: Отсылка жирного HTTP-запрсоа

Quote:
Originally Posted by ZaR View Post
Чо-т жесть какая-то.

Мне нужно отправить жирный запрос -- дамп БД (не спрашивайте, зачем). 200 символов в среднем на запись в БД (с учётом, что все unicode-символы подверглись urlencode'у) -- получается уже 800 байт, то есть чёрт побери 1 килобайт на запись. Записей -- допустим, 5к. 5 мегабайт в оперативной памяти, которая отжирает глобальная переменная -- это жесть.
Это же одноразовый запрос? Да и разве 5 мегабайт это много? 2015 на дворе.

P.S. Выглядит так, как будто ты хочешь FS'ом утащить базу -_-
ZiGGi is offline   Reply With Quote
Old 06/05/2015, 03:33 PM   #9
ZaR
Big Clucker
 
Join Date: Sep 2009
Posts: 157
Reputation: 1
Default Re: Отсылка жирного HTTP-запрсоа

Одноразовый-то одноразовый, только если ты делаешь глобальную переменную, нет особой разницы -- будешь ты её 1 раз использовать или 10 -- 5 мегабайт съедены.

2015-то на дворе, но жить и без гарбажколлектора, и без ручного выделения и очистки памяти -- как-то не оч в императивном языке.
__________________
ZaR is offline   Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
[HTTP] Why is my HTTP/PHP script not working? Sinner Scripting Help 2 26/09/2013 05:24 PM
HTTP() callback won't fire, + server crash using HTTP() KoczkaHUN Bug Reports 6 14/12/2011 10:35 AM


All times are GMT. The time now is 07:41 PM.


Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.