I have a Julia code file containing the definition of a function I want to 
profile, setting up test data, and running a function call (actually 2 
calls, one to compile the function, and one to actually measure its 
performance, and optionally a third call to profile it).

So my Julia test code is conceptually structured as follows:

>
> function my_slow_func(a, b)
>   <function body>
>   return c::DataFrame
> end
> test_a = DataFrame(...)
> test_b = DataFrame(...)
> warmup_res = my_slow_func(test_a, test_b)
> @time perf_res = my_slow_func(test_a, test_b)
>
Profile.clear() 

@profile profile_res = my_slow_func(test_a, test_b)

Profile.print() 


The function call takes ~ 1.5 to 2 sec to run.  It should be 2 orders of 
magnitude faster to match R benchmarks.  So I am trying to profile it.

Pb. 1: When I run the function through the @profile, it runs much slower: ~ 
35sec.
>From what I read about the profiler, it should not be that much slower.
Any idea what could be going wrong?

Pb.2: Profile.print() dies.
When I run it through Juno/LightTable, I get an ECONNRESET exception.
Again, what am I doing wrong that I cannot get profile results?

Can my function and test script be in the same file or should I have my 
test function in its own file?  Does it matter?

The crash runs on Windows 7 64, Julia 0.3 (downloaded about a couple weeks 
ago or so).  I use the default profiler parameters.

Tomorrow:

   1. I can try running on Linux if it may help shed some light.
   2. I may also submit the details of my slow function if I cannot figure 
   out how to make it run much faster -- I am benchmarking against an R test, 
   granted optimized using data.table, it should nevertheless perform at least 
   in the same order of magnitude, not 2 orders of magnitude slower!  I would 
   rather get a fair shot with the profiler's help before crying for help!

Thanks much in advance for any clue.

Patrick

Reply via email to