Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Hi HN! I'm Clark, one of the maintainers of magic-trace.

magic-trace was submitted before, our first announcement was this blog post: https://blog.janestreet.com/magic-trace/.

Since then, we've worked hard at making magic-trace more accessible to outside users. We've heard stories of people thinking this was cool before but being unable to even find a download link.

I'm posting this here because we just released "version 1.0", which is the first version that we think is sufficiently user-friendly for it to be worth your time to experiment with.

And uhh... sorry in advance if you run into hiccups despite our best efforts. Going from dozens of internal users to anyone and everyone is bound to discover new corners we haven't considered yet. Let us know if you run into trouble!



Windows has Windows Performance Analyzer, GPUView and PIX so most game devs are covered on that front :)


Do people still use GPUView? It hasn't seen a lot of development in years AFAIK and wondered if it was still working and useful.

PIX is great! It gets regular updates and an active and responsive Discord channel.


We use it internally, I'm not entirely certain of external usage. It still works and is good for tracking command packet scheduling and inter-process wait chains.

Yup, PIX is THE tool for game developers. Direct3D team also has a very responsive discord channel :)


I’m probably missing something so apologies if this is obvious: does this only work on compiled programs or could it work on any arbitrary running code. Everything from Firefox to my random python script?


It works best on compiled programs.

We do try to support scripted languages with JITs that can emit info about what symbol is located where [1]. Notably, this more or less works for Node.js. It'll work somewhat for Python in that you'll see the Python interpreter frames (probably uninteresting), but you will see any ffi calls (e.g., numpy) with proper stacks.

[1]: https://github.com/torvalds/linux/blob/master/tools/perf/Doc...


I'm curious about why Standard ML (SML) was chosen for this project, given the track record Jane Street has with OCaml. Do you seen an advantage for using the former in this kind of project?


It's all OCaml, GitHub is just misclassifying it as SML :)


Hint[1] in case you’re ever in this situation:

  echo '*.ml  linguist-language=OCaml' >> .gitattributes
  echo '*.mli linguist-language=OCaml' >> .gitattributes
[1] https://github.com/github/linguist/blob/master/docs/override...


Thank you for this. I've made the change, but it looks like it may be several days before github gets around to refreshing the language statistics.


So one needs to upload the trace log to your website to visualize? Any way to do it locally?


Absolutely, check out https://github.com/janestreet/magic-trace#privacy-policy and https://github.com/janestreet/magic-trace/wiki/Setting-up-a-.... With a bit of extra configuration, magic-trace can host its own UI locally. You just need to build the UI from source, and point magic-trace to it (via an environment variable).


Awesome work Clark!

Any plans to support Arm in the future? Thanks!


We don't have plans to add ARM support largely because we have no in-house expertise with ARM. That said, ARM has CoreSight which sounds like it could support something like magic-trace in some form, and we'd definitely be open to community contributions for CoreSight support in magic-trace.


On the website, scrolling doesn't work in mobile safari.


Thanks for sharing this.


why do you guys use Caml?



that seems to be a presentation about language features. I'm mostly interested in the business reasons for using the language within what jane street does, and how the language offers a competitive advantage and why it is "good enough" for the highly competitive HFT landscape they work in.


The language features are the competitive advantage.


Because Java is not the be-all and end-all.


why use java when you have c++?


So you can use Clojure. ;-)




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: