Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Maturity question #1

Open
Horusiath opened this issue Aug 29, 2017 · 1 comment
Open

Maturity question #1

Horusiath opened this issue Aug 29, 2017 · 1 comment

Comments

@Horusiath
Copy link

Horusiath commented Aug 29, 2017

A simple question: did you checked a performance and memory overhead produced by this library (i.e. in comparison with other libs like Sigil? I'd like to evaluate it in situation when code will be generated at runtime, potentially per user request. In this case memory usage and IL generation speed matters.

@rspeele
Copy link
Owner

rspeele commented Aug 31, 2017

There's definitely some overhead because the computation expression results in a lot of little closures being allocated. They're very short lived so should all be gen 0 collections, but the big downside is that the first time a given block of IL-generation code runs it has a lot (milliseconds) of overhead, which goes away on subsequent iterations (to generate additional types/methods using the same pattern of instructions). I'm guessing this one-time overhead is the JIT compiling each little closure in the cil block.

I haven't checked against Sigil (or anything else) but I would bet it's measurably faster than LicenseToCIL.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants