Приветствую!
Собственно, есть пару вопросов, касательно оптимизации работы скрипта. Задача в чем: есть большой файл, который загружается в массив. В скрипт подается строка, которую нужно сравнить со строками в массиве. Если файл небольшой (примерно 500кб) то все работает в пределах нужной производительности. Если файл больше, то начинаются просадки, а так как массив разрастается все дальше и дальше, то скорость также падает. Примерно скрипт выглядит так:
Собственно, сам вопрос - как можно оптимизировать скрипт для улучшения производительности? Ткните носом в проблемы в скрипте.
Собственно, есть пару вопросов, касательно оптимизации работы скрипта. Задача в чем: есть большой файл, который загружается в массив. В скрипт подается строка, которую нужно сравнить со строками в массиве. Если файл небольшой (примерно 500кб) то все работает в пределах нужной производительности. Если файл больше, то начинаются просадки, а так как массив разрастается все дальше и дальше, то скорость также падает. Примерно скрипт выглядит так:
Код:
$file = FileOpen('test')
$memFile = _ReadFileInMemory($file)
$sCode = 'BD35JDOU37'
$return = _Check($memFile, $sCode)
Func _Check($memFile, $sCode)
Local $i = 0
While 1
$string = $memFile[$i]
If $string == '' Then
$memFile[$i] = $sCode
Return 1
EndIf
If $string == $sCode Then
Return 0
EndIf
$i += 1
Wend
EndFunc
Func _ReadFileInMemory($file)
Local $i = 0
While 1
$memFile[$i] = FileRead($file, 10)
If @error = -1 Then
ExitLoop
EndIf
$i += 1
Wend
Return($memFile)
EndFunc
Собственно, сам вопрос - как можно оптимизировать скрипт для улучшения производительности? Ткните носом в проблемы в скрипте.