Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Страница 2 из 2 ПерваяПервая 1 2
Показано с 11 по 18 из 18
  1. #11
    Аватар для Daniel_Cortez
    "Это не хак, это фича"

    Статус
    Оффлайн
    Регистрация
    06.04.2013
    Адрес
    Novokuznetsk, Russia
    Сообщений
    2,192
    Репутация:
    2590 ±
    Цитата Сообщение от DeimoS Посмотреть сообщение
    Эмм, то есть использования сразу двух маркеров одновременно даёт возможность подсчитать размер строки? :shok:
    Можно использовать и просто static, без const, но тогда будет сложнее понять назначение строки fmt_str, т.к. будет возможность изменить её содержимое. Код в первую очередь должен быть понятным, а не настроченным абы как за 3 секунды.
    Индивидуально в ЛС по скриптингу не помогаю. Задавайте все свои вопросы здесь (click).

  2. #12
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Цитата Сообщение от Daniel_Cortez Посмотреть сообщение
    Можно использовать и просто static, без const, но тогда будет сложнее понять назначение строки fmt_str, т.к. будет возможность изменить её содержимое.
    Речь как раз и идёт о том, что можно использовать просто static. И как же великое желание экономить память? Целый массив создаём ради того, чтоб вручную не высчитывать размер! Ай-яй-яй...
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

    Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
    Великих идей полно, на них нет спроса.
    Воплощение идеи в законченную игру требует долгой работы,
    таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
    Предложить идею просто, воплотить – вот в чём проблема

    Steve Pavlina

  3. #13
    Аватар для Daniel_Cortez
    "Это не хак, это фича"

    Статус
    Оффлайн
    Регистрация
    06.04.2013
    Адрес
    Novokuznetsk, Russia
    Сообщений
    2,192
    Репутация:
    2590 ±
    Цитата Сообщение от DeimoS Посмотреть сообщение
    Речь как раз и идёт о том, что можно использовать просто static. И как же великое желание экономить память? Целый массив создаём ради того, чтоб вручную не высчитывать размер! Ай-яй-яй...
    Если не использовать тот метод подсчёта и указывать форматную строку напрямую в format(), она всё равно будет храниться в секции данных. А значит место под неё будет выделяться в любом случае, со static const или без. Не будет же эта строка браться из ниоткуда!
    Индивидуально в ЛС по скриптингу не помогаю. Задавайте все свои вопросы здесь (click).

  4. #14
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Цитата Сообщение от Daniel_Cortez Посмотреть сообщение
    Если не использовать тот метод подсчёта и указывать форматную строку напрямую в format(), она всё равно будет храниться в секции данных. А значит место под неё будет выделяться в любом случае, со static const или без. Не будет же эта строка браться из ниоткуда!
    Ну так у тебя и массив, и format же... :(
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

    Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
    Великих идей полно, на них нет спроса.
    Воплощение идеи в законченную игру требует долгой работы,
    таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
    Предложить идею просто, воплотить – вот в чём проблема

    Steve Pavlina

  5. #15
    Аватар для Daniel_Cortez
    "Это не хак, это фича"

    Статус
    Оффлайн
    Регистрация
    06.04.2013
    Адрес
    Novokuznetsk, Russia
    Сообщений
    2,192
    Репутация:
    2590 ±
    Цитата Сообщение от DeimoS Посмотреть сообщение
    Ну так у тебя и массив, и format же... :(
    Это что-то меняет? В моём методе копия форматной строки в секции данных будет всего одна. По сути, использование static const для объявления той строки даёт лишь больше возможностей для обращения с ней (например, с тем же оператором sizeof). На общий размер содержимого секции данных это влиять не должно.
    Индивидуально в ЛС по скриптингу не помогаю. Задавайте все свои вопросы здесь (click).

  6. #16
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Цитата Сообщение от Daniel_Cortez Посмотреть сообщение
    Это что-то меняет? В моём методе копия форматной строки в секции данных будет всего одна. По сути, использование static const для объявления той строки даёт лишь больше возможностей для обращения с ней (например, с тем же оператором sizeof). На общий размер содержимого секции данных это влиять не должно.
    PHP код:
    new rand random(100_000);//Переменная намба уан
    static const fmt_str[] = "rand = %d";//Переменная намба ту
    new string[sizeof(fmt_str)-2+5];//Переменная намба фри
    fotmat(stringsizeof(string), fmt_strrand);//Как ты сказал выше, для хранения текста в format выделяется память, так что ещё минус память
    SendClientMessage(playerid, -1string); 
    не?
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

    Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
    Великих идей полно, на них нет спроса.
    Воплощение идеи в законченную игру требует долгой работы,
    таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
    Предложить идею просто, воплотить – вот в чём проблема

    Steve Pavlina

  7. #17
    Аватар для Daniel_Cortez
    "Это не хак, это фича"

    Статус
    Оффлайн
    Регистрация
    06.04.2013
    Адрес
    Novokuznetsk, Russia
    Сообщений
    2,192
    Репутация:
    2590 ±
    Цитата Сообщение от DeimoS Посмотреть сообщение
    Как ты сказал выше, для хранения текста в format выделяется память, так что ещё минус память
    Wut?! У тебя выше уже созданы 3 переменные и память под них выделена в секции данных и стеке. Где ты увидел выделение памяти в format ?

    Ок, раз уж ты так не хочешь верить, попробуй вот что:
    PHP код:
    #include <a_samp>
    main(){
        new 
    rand random(100_000);
        new 
    string[32]; // не знаю, откуда это число, но пусть будет так
        
    format(stringsizeof(string), "rand = %d"rand);
        
    SendClientMessage(playerid, -1string);

    PHP код:
    #include <a_samp>
    main(){
        new 
    rand random(100_000);
        static const 
    fmt_str[] = "rand = %d";
        new 
    string[sizeof(fmt_str)-2+5];
        
    format(stringsizeof(string), fmt_strrand);
        
    SendClientMessage(playerid, -1string);

    Скомпилируй эти 2 скрипта с ключом "-a", чтобы сгенерировать ассемблерные листинги, и сравни получившиеся результаты.
    Индивидуально в ЛС по скриптингу не помогаю. Задавайте все свои вопросы здесь (click).

  8. #18
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Цитата Сообщение от Daniel_Cortez Посмотреть сообщение
    Wut?! У тебя выше уже созданы 3 переменные и память под них выделена в секции данных и стеке. Где ты увидел выделение памяти в format ?

    Ок, раз уж ты так не хочешь верить, попробуй вот что:
    PHP код:
    #include <a_samp>
    main(){
        new 
    rand random(100_000);
        new 
    string[32]; // не знаю, откуда это число, но пусть будет так
        
    format(stringsizeof(string), "rand = %d"rand);
        
    SendClientMessage(playerid, -1string);

    PHP код:
    #include <a_samp>
    main(){
        new 
    rand random(100_000);
        static const 
    fmt_str[] = "rand = %d";
        new 
    string[sizeof(fmt_str)-2+5];
        
    format(stringsizeof(string), fmt_strrand);
        
    SendClientMessage(playerid, -1string);

    Скомпилируй эти 2 скрипта с ключом "-a", чтобы сгенерировать ассемблерные листинги, и сравни получившиеся результаты.
    Таки неверно выразился я. Оптимизация памяти не в смысле заполнения стэка, а в смысле тиков. Типа "Защем заставлять сервер выполнять лишние действия, когда можно обойтись без них, ко-ко-ко" :smile3:
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

    Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
    Великих идей полно, на них нет спроса.
    Воплощение идеи в законченную игру требует долгой работы,
    таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
    Предложить идею просто, воплотить – вот в чём проблема

    Steve Pavlina

 

 
Страница 2 из 2 ПерваяПервая 1 2

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

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