Hello colleague,

hopefully we do not have a race condition here, yesterday in the late 
afternoon i ussed a PR for Cairo.jl and i included the push/pop there (
https://github.com/JuliaLang/Cairo.jl/pull/65)

The test_speed.jl does some rendering of dots in different methods, however 
on my box ddots4 (with push/pop group) is awfully slow. If you find time, 
could you review my code if i do it right, please?

Wishing a happy day,
   Andreas

On Thursday, March 6, 2014 9:50:43 AM UTC+1, Roger Herikstad wrote:
>
> Hi, 
> I tried to modify the scatter plot code in Winston to make use of the 
> push_group/pop_group code, but for some reason I couldn't get it to work. 
> Instead, I ended combining the advice from Andreas Lobinger above with the 
> fix already used in the curve(..) function to break up long paths. It gives 
> me a decent speedup that is good enough for most of my use. If my solution 
> seems OK to people, I can issue a pull request.
>
>
> https://github.com/grero/Winston.jl/commit/e63f7ef2137a6932143a0c53a2c8e65ecdebec7e
>
> On Sunday, March 2, 2014 9:47:13 AM UTC+8, Roger Herikstad wrote:
>>
>> Hi again,
>>  I did a simple time test by inserting time() calls at the beginning and 
>> end of my update function. For both my original solution and the one 
>> suggested by Andreas, the function takes about 0.36 seconds with 10000 
>> points on my laptop. 
>>
>> On Sunday, March 2, 2014 9:39:11 AM UTC+8, Roger Herikstad wrote:
>>>
>>> Hi,
>>>  Thanks for the advice! The initial drawing definitely seems faster when 
>>> using zero-length lines. On my Macbook Pro with 8GB of ram, this solution 
>>> seems comparable to the performance of matplotlib when using 10000 points. 
>>> Matlab is still much, much faster. I'll try running some proper timing 
>>> experiments to quantify the difference. 
>>>
>>> On Saturday, March 1, 2014 11:10:56 PM UTC+8, Andreas Lobinger wrote:
>>>>
>>>> Hello colleague,
>>>>
>>>> On Friday, February 28, 2014 6:59:13 AM UTC+1, Roger Herikstad wrote:
>>>>>
>>>>> Hi all,
>>>>>  I tried to get a better understanding of Cairo drawing by 
>>>>> implementing this solution myself. This is just a proof-of-concept and I 
>>>>> didn't do any rigorous testing, but subjectively comparing the resize 
>>>>> performance of a Winston scatter plot of ~10000 points and this new 
>>>>> solution, I noticed a significant speed-up. Note that I still find it too 
>>>>> slow, but that's probably due to my lack of understanding of Cairo. 
>>>>> Basically, this is what I did:
>>>>> I appreciate any comments on this. Thanks!
>>>>>
>>>>
>>>> 1)
>>>> How do you plan to treat different colors per dot?
>>>> 2) 
>>>> In a lot of cairo advices, the fastest way for a round dot is:
>>>>     set_line_cap(cr,Cairo.CAIRO_LINE_CAP_ROUND)
>>>>     set_line_width(cr,radius)
>>>>     
>>>>     for i=1:n
>>>>        move_to(cr,px[i],py[i]);
>>>>        rel_line_to(cr,0,0);
>>>>        stroke(cr);
>>>>        end
>>>>
>>>>
>>>> so setting the line end to a ROUND CAP and plot a line of length 0.
>>>>
>>>>  
>>>>
>>>

Reply via email to