Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

MyDC.ru _ Технические вопросы по PtokaX _ Птока Стала Кушать Много Цп

Автор: *FoxMalder* 2.1.2009, 18:06

птока 0360 раньше кушала не более 10 - 20% при 1.5к и 2к народу а щас от 20 до 80 скачет постоянно
началось это примерно 2 недели назад никаких скриптов я не ставил за это время... с чем это может быть связано??

Автор: Nickolya 2.1.2009, 20:34

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

Автор: *FoxMalder* 2.1.2009, 22:01


используют много памяти 3 скрипта люцифер но он совсем не грузит цп, спамер немного и война но там база очень большая почти 4метра
можешь сделать скрипт для базы, который бы отчистил базу от нулевиков?

Код
Cfg.Scores = {
    [36604] = {
        [2] = "Neo84",
        [1] = 0,
        [3] = 1,
    },
}

36604 -> это наверно № юзера хотя идут они не по порядку
2 -> понятно)
1 -> число очков
3 -> 1 жив/0 мертв

зы база выглядит несколько иначе см. ниже =)

 Текстовый_документ.txt ( 133 байт ) : 8
 

Автор: Nickolya 2.1.2009, 22:10

Код
function ClearNilUsers()
    for i, v in pairs(Cfg.Scores) do
        if v[1] == 0 then
            table.remove(Cfg.Scores, i)
        end
    end
end

Вот такую функцию допиши в конец скрипта, а в конец функции Main() перед end'ом допиши
Код
    ClearNilUsers()

Использовать один раз...

И еще вопрос: метод поочередного выключения скриптов не помогает вычислить какой нагружает проц?

Автор: *FoxMalder* 2.1.2009, 22:26

Main() в скрипте нету есть тока Main = function()

вырубал все скрипты нагрузка цп до 10% со всеми кроме тех что много едят до 20% больше всего война нагружает птоку

Автор: Wariner 2.1.2009, 22:28

Цитата(*FoxMalder* @ 2.1.2009, 22:26) *
Main() в скрипте нету есть тока Main = function()

это одно и тоже

Автор: Nickolya 2.1.2009, 22:32

Это и есть функция Main()

Если я все правильно понимаю, то функция должна выглядеть так:

Код
Main = function()
    local LuaVer = _VERSION:sub(1,7)

    ...

    if Cfg.StartOn:lower() == "yes" then
        SendToAll(Cfg.Bot,SortTable(Cfg.Scores,10))
        StartTimer()
        OnTimer()
    end
    ClearNilUsers()
end

Автор: *FoxMalder* 2.1.2009, 22:36

Код
Main = function()
    local LuaVer = _VERSION:sub(1,7)
    if LuaVer ~= "Lua 5.1" then
        OnError("This script is incompatible with ".._VERSION)
        Main = nil
        OnError = nil
        OnExit = nil
        NewUserConnected = nil
        OpConnected = nil
        UserDisconnected = nil
        OpDisconnected = nil
        ChatArrival = nil
        ToArrival = nil
        OnTimer = nil
        return 1
    end

Автор: Nickolya 2.1.2009, 22:37

UPD: хотя лучше всунуть вот сюда:

Код
    if loadfile(Cfg.WarFile) then
        dofile(Cfg.WarFile)
        ClearNilUsers()
        Recruit()
        OnError("File "..Cfg.WarFile.." updated and now contains "..#Cfg.Scores.." entries.")
    else