А пока go Я написал фрактальную программу в Lua. Он отлично работает на моих старых ПК Windows 7 и Windows 8. Я получил новый ноутбук с Windows 10 и запустил его с luajit 2.1.0, который работал лучше всего для меня в прошлом. К сожалению, некоторые прогоны с различными параметрами завершились неудачно без ошибок или причин. И тогда я заметил, что даже успешное выполнение использует слишком много памяти. Я старался изо всех сил, чтобы отследить проблему, используя различные сборки luajit от 2.0 до 2.1, но единственное, что я могу видеть, это то, что утечка памяти так или иначе связана с вызовами FFI в OpenCl API. Если кто-то захочет взглянуть, я предоставлю полный код программы и необходимые программы. Прикрепление старого демо lua кода, который также просачивается на win10, на основе и использования: https://github.com/malkia/luajit-opencl
cl-demo. lua: https://github.com/LuaJIT/LuaJIT/files/4366334/cl-demo.txt
Я уверен, что мой пост был написан неправильно, Engli sh не мой родной язык и, возможно, не в том месте. Я не имел в виду, что кто-то тратит время на отладку моего старого кода, но, возможно, указал мне правильное направление или предложил какой-нибудь легко доступный инструмент проверки ошибок памяти, например, очистить. Я использовал его для поиска ошибок памяти, к сожалению, он больше не доступен для одного пользователя. Также у меня теперь есть сильное подозрение, что что-то перезаписывает память после обращений к opencl. в результате вызовы os.time, math.random & et c. приводить к необъяснимому завершению выполнения кода. Следующий код после вызовов OpenCL начинает вести себя странно, значение ii в последнем l oop в операторе if внезапно получает значение, подобное 0.13900852449513657!
clfns[1]=true;
for ii=2,34,1 do clfns[ii]=false; end
for ii=2,34,1 do if string.find(formula, c2fns[ii] .. "[(]") then
for jj=1,4,1 do if cdfns[ii][jj] then clfns[cdfns[ii][jj]]=true; end end
end end
for ii=1,34,1 do
if clfns[ii] then
cFuns = cFuns .. cfns[ii]; end end