I use meta programming to create my function. This is a simpler example.
The parameters are generated randomly in the actual function.
* lhs = {"ode1"=> :(fy[1]), "ode2"=> :(fy[2])};*
* rhs = {"ode1"=> :(y[1]*y[1]-2.0), "ode2"=> :(y[2]-y[1]*y[1])};*
* function code_f(lhs::Dict, rhs::Dict)*
* lines = {}*
* for key in keys(lhs)*
* push!(lines, :( $(lhs[key]) = $(rhs[key])) )*
* end*
* @gensym f*
* quote*
* function $f(y, fy)*
* $(lines...)*
* end*
* end*
* end*
Le lundi 27 avril 2015 18:12:24 UTC+1, Tom Breloff a écrit :
>
> Can you give us the definition of make_function as well? This is being
> run in global scope?
>
> On Monday, April 27, 2015 at 12:37:48 PM UTC-4, Antoine Messager wrote:
>>
>> When I input the following code, where myfunction is only a system of 2
>> equations with 2 unknowns, the code starts to be really slow after 10,000
>> iterations. NLsolve is a non linear solver (
>> https://github.com/EconForge/NLsolve.jl).
>>
>> * size=2*
>> * for k in 1:100000*
>> * myfun=make_function(size);*
>> * try{*
>> * res=nlsolve(myfun,rand(size))*
>> * }*
>> * end*
>> * end*
>>
>> Thank you for your help,
>> Antoine
>>
>> Le lundi 27 avril 2015 16:30:19 UTC+1, Mauro a écrit :
>>>
>>> It is a bit hard to tell what is going wrong with essentially no
>>> information. Does the memory usage of Julia go up more than you would
>>> expect from storing the results? Any difference between 0.3 and 0.4?
>>> Anyway, you should try and make a small self-contained runable example
>>> and post it otherwise it will be hard to divine an answer.
>>>
>>> On Mon, 2015-04-27 at 16:49, 'Antoine Messager' via julia-users <
>>> [email protected]> wrote:
>>> > Dear all,
>>> >
>>> > I need to create a lot of systems of equation, find some
>>> characteristics of
>>> > each system and store the system if of interest. Each system is
>>> created
>>> > under the same name. It works fine for the first 1000 systems but
>>> after the
>>> > program starts to be too slow. I have tried to use the garbage
>>> collector
>>> > each time I create a new system but it did not speed up the code. I
>>> don't
>>> > know what to do, I don't understand where it could come from.
>>> >
>>> > Cheers,
>>> > Antoine
>>>
>>>