Общение

Сообщения
265
Реакции
315
Помог
10 раз(а)
Обратите внимание, если вы хотите заключить сделку с этим пользователем, он заблокирован
не так это и страшно в реалиях AMXX
ну дергать переменную с готовым набором флагов явно будет быстрее, нежели получать снова данные
то, что амхх упорот - это ясно давно и всем, даже тем, кто далек от понимания в написании плагинов
 
Сообщения
2,722
Реакции
2,997
Помог
60 раз(а)
Скрытое содержимое для пользователей:
 
Сообщения
46
Реакции
8
Предупреждения
100
Помог
3 раз(а)
Обратите внимание, если вы хотите заключить сделку с этим пользователем, он заблокирован
Сообщения
265
Реакции
315
Помог
10 раз(а)
Обратите внимание, если вы хотите заключить сделку с этим пользователем, он заблокирован
wopox1337, компилятор зафейлится, потому что натива random_num предусматривает 2 обязательных аргумента

Код:
Код:
#include <amxmodx>

public plugin_init()
{
    new string[10];
    generate_string(string, charsmax(string));
    server_print("-> Generate string: '%s'", string);
}


generate_string(str[], len)
{
    for(new i; i < len; i++)
    {
        switch(random_num(3))
        {
            case 0: str[i] = random_num('A', 'Z');
            case 1: str[i] = random_num('a', 'z');
            case 2: str[i] = random_num('0', '9');
        }
    }
    str[len] = 0;
}
Результат:
1530998780537.png
 
Последнее редактирование:
Сообщения
2,722
Реакции
2,997
Помог
60 раз(а)
neygomon, а, синтаксическая ошибка.. не сразу заметил :crazy:
8 Июл 2018
давайте усложнять код и забивать голову человеку
подходов для решения задачи - не мало. Мыслить шаблонно в программировании - вовсе не лучшая затея. Поэтому я полагаю, не стандартный подход к решению задачи не должен являться поводом к конфликту именно в нашей сфере.
 
Сообщения
265
Реакции
315
Помог
10 раз(а)
Обратите внимание, если вы хотите заключить сделку с этим пользователем, он заблокирован
не должен являться поводом к конфликту
боже упаси. не собирался вообще с кем-либо конфликтовать.
цель моего сообщения была донести до the_hunter, что предлагать такое решение не стоило бы в нашем случае.
всю суть его кода поймут только те, кто реально юзал это. остальные просто скопируют и все, не разбираясь в деталях.


зы: смотрю, все смертные, раз не хотят потестить это "чудо" https://dev-cs.ru/threads/1462/post-34468
 
Сообщения
2,143
Реакции
1,223
Помог
44 раз(а)
neygomon, ничего удивительного. Тут к официальному ресурсу нет отзывов или здравой критики. Клешнями не вытащишь.

Уже сколько интересных проектов затухло из-за неактивности пользователей использующих ресурс.
 
Сообщения
162
Реакции
445
Помог
2 раз(а)
а биты... ну тут тесты были, не самое быстрое это дело(
А как интересно тестировали? Потому что как бы я не пробовал, в профайлере по всем параметрам работа с битами быстрее, чем работа с массивами.

C++:
#include <amxmodx>

new g_bits;
new g_array[32];

#define get_bit(%1,%2)    (%1 & (1 << (%2 & 31)))
#define set_bit(%1,%2)    (%1 |= 1 << (%2 & 31))

public plugin_cfg()
{
    for (new i = 0; i < 100; i++)
        write_bits();

    for (new i = 0; i < 100; i++)
        write_array();

    for (new i = 0; i < 100; i++)
        read_bits();

    for (new i = 0; i < 100; i++)
        read_array();

    server_print("^ntest completed!^n");
}

write_bits()
{
    for (new i = 0; i < 50000; i++)
    {
        set_bit(g_bits, i % 31);
    }
}

write_array()
{
    for (new i = 0; i < 50000; i++)
    {
        g_array[i % 31] = 1;
    }
}

read_bits()
{
    for (new i = 0, j; i < 50000; i++)
    {
        j = get_bit(g_bits, i % 31);
    }
}

read_array()
{
    for (new i = 0, j; i < 50000; i++)
    {
        j = g_array[i % 31];
    }
}

Код:
date: Mon Jul 09 12:03:10 2018 map: de_dust2
type |                             name |      calls | time / min / max
-------------------------------------------------------------------
   n |                     server_print |          1 | 0.000836 / 0.000836 / 0.000836
   p |                       plugin_cfg |          1 | 0.000451 / 0.000451 / 0.000451
   f |                       write_bits |        100 | 0.092965 / 0.000907 / 0.001116
   f |                      write_array |        100 | 0.105274 / 0.001045 / 0.001154
   f |                        read_bits |        100 | 0.093135 / 0.000924 / 0.001001
   f |                       read_array |        100 | 0.108200 / 0.001037 / 0.001697
0 natives, 0 public callbacks, 1 function calls were not executed.
 
Сообщения
2,491
Реакции
2,791
Помог
61 раз(а)
the_hunter, кстати если судить по логике на счет битов или массивов. В битах у нас тратиться время на расчет позиции бита. Например #define get_bit(%1,%2) (%1 & (1 << (%2 & 31))). В массивах у нас не идет расчет. У нас идет обращение по адресу и оффсету (если мне не изменяет память). Потому массивы должны быть по идее быстрее. А вот памьять занимать будут больше ведь в битах у нас размер один cell, что равно 4 байта, так как у АМХХ 32-ух битный. Но ИМХО спорить на эту тему в принципе не имеет смысла. Разница как видно в тестах на 100 иттерациях вообше не существенна, для того чтобы использовать то или инное в любых случаях. Я считаю что нужно использовать то, что удобнее для чтения и понимания кода. И потому мой выбор массивы. Да может они чуть медленее, или чуть более занимают места в памяти. Но удобство чтения и работы с ними намного више. А те минусы не такие существенные в сравнение, например, с чтением файла. Нету предела оптимизациям. И нужно найти тонкый баланс между оптимизированым и понятным кодом. А те пару байтов в памяти или несколько операций процессора на современном оборудовании ничто. Именно потому в заключении скажу, что оптимизировать в первую очередь нужно такые тяжелые операции как чтение файлов, запросы к базе или think-ы. То что реально (заметно на глаз) дает нагрузку.
 
Сообщения
162
Реакции
445
Помог
2 раз(а)
fantom обращение по адресу + оффсет это и есть расчет.
Во всем остальном полностью согласен. И я сам это же много раз озвучивал. Просто удивил месседж про то, что биты зло.
 
Сообщения
18
Реакции
3
Здравствуйте, господа и дамы... Долго искал где можно спросить. Решил всё же написать в "Флудилку"
Что-за прекрасный стиль форума у вас стоит? Это эксклюзив? Я просто рылся в сети, искал подобные - не смог найти ни одной похожей
 
Сообщения
18
Реакции
3
Именно. Разработанный командой и только для данного форума. К счастью уникален отчасти.
Печально. Очень он красив:) Благодарю за ответ
13 Июл 2018
wopox1337, можно узнать. Что брали за основу разработки стиля? Или с чистого листа всё делали?
 
Сообщения
2,722
Реакции
2,997
Помог
60 раз(а)

Вложения

Сообщения
18
Реакции
3
wopox1337, еще раз благодарю.
14 Июл 2018
voed, не расскажете как сделать анимированные группы пользователи как у вас? Собственно это единственный вопрос, который меня интересует:)

1531569216778.png
 

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

Сейчас на форуме нет ни одного пользователя.
Сверху Снизу