hxScout 0.3.0 released - performance++

82 views
Skip to first unread message

Jeff Ward

unread,
Jul 10, 2015, 12:58:15 AM7/10/15
to haxe...@googlegroups.com
Hi all,

I've just released hxScout 0.3.0 with the improved performance I've been hinting at. Go check it out at hxscout.com/haxe.html


FYI, you don't need to checkout my repos anymore. And OpenFL 3.1.1 and later supports telemetry with a simple -Dtelemetry option -- other frameworks set a couple vars, etc. All the details are on the page.

Let me know if you have questions or feedback.

Best,
-Jeff

Philippe Elsass

unread,
Jul 10, 2015, 2:10:58 AM7/10/15
to haxe...@googlegroups.com

Would it be useful for others to describe how you solved the performance issues?

--
To post to this group haxe...@googlegroups.com
http://groups.google.com/group/haxelang?hl=en
---
You received this message because you are subscribed to the Google Groups "Haxe" group.
For more options, visit https://groups.google.com/d/optout.

Raoul Duke

unread,
Jul 10, 2015, 1:34:17 PM7/10/15
to haxe...@googlegroups.com
hi, This is cool stuff. Regarding documentation, I would love to learn if we can use it to find issues in hxcpp itself e.g. the old memory leaks I feel like might have existed on Android. There's been a tremendous amount of good work on hxcpp that finding the last few issues (if there are any these days) would be a great thing.

Jeff Ward

unread,
Jul 10, 2015, 1:39:37 PM7/10/15
to haxe...@googlegroups.com
That's a good idea, Philippe.

There were a few simple and generally applicable changes (using Vector<Int> instead of Array, reading/writing chunks of Bytes from the socket instead of Uint at a time), and then a fairly application-specific data-processing refactor and a fancy algorithm for merging stacks and tallying allocations.

I was keeping a big tree of object instantiations /w stack info per frame. And while these weren't being collected (not a problem of Object Pooling) the very high rate of instantiations made the GC bog (I assume it still must iterate all those objects). So instead of a big tree per frame, I kept most data in raw Vector<Int> form, also merging some data earlier in the process. Then since my big trees went away, I needed a data structure to let me iterate those vectors of data in order. Keeping a smaller tree of only unique stacks, I could then iterate the big data in order, and this let me tally build and tally the rows of data displayed in the lower panes of the UI in order.

Best,
-Jeff


You received this message because you are subscribed to a topic in the Google Groups "Haxe" group.

Jeff Ward

unread,
Jul 10, 2015, 1:44:19 PM7/10/15
to haxe...@googlegroups.com
Hi Raoul,

Interesting, perhaps with some work. All the hxcpp modifications do is expose data, which then gets sent to hxScout for display in a pretty GUI. With some hacking, you could expose whatever data you want. I do expose some of the gc memory stats, though I'm not experienced finding memory issues in c++.

Cheers,
-Jeff

On Fri, Jul 10, 2015 at 11:34 AM, Raoul Duke <rao...@gmail.com> wrote:
hi, This is cool stuff. Regarding documentation, I would love to learn if we can use it to find issues in hxcpp itself e.g. the old memory leaks I feel like might have existed on Android. There's been a tremendous amount of good work on hxcpp that finding the last few issues (if there are any these days) would be a great thing.

--

Jeff Ward

unread,
Jul 11, 2015, 12:24:17 AM7/11/15
to haxe...@googlegroups.com
Blast, found a bug in hxScout 0.3.0 that can make allocation tracking crash. Fix pushed to github, will try to script the release build process tomorrow and push 0.3.1.

Does Haxe work under wine? It'd be nice to script windows builds in Linux.

Best,
-Jeff
Reply all
Reply to author
Forward
0 new messages