c838a11c4d
Implement support for optimizing away the dynamic registrar. * Add a new property (Runtime.DynamicRegistrationSupported) that indicates at runtime whether dynamic registration is available. * Check this new property whenever we need dynamic registration. * Add an optimization to mtouch/mmp that detects whether dynamic registration is required, and if not, changes Runtime.DynamicRegistrationSupported to return false. * Add an optimization to mtouch/mmp that inlines Runtime.DynamicRegistrationSupported as a constant value. The end result is that the linker will link away the dynamic registrar if mtouch/mmp detects that it's not needed. Benchmark --------- I've compared the size of entire apps built for device: |test | Before | After | Diff | % | |:-----------------------------|-------:|-------:|-------:|------:| |[monotouch-test/Release][1] | 95.7mb | 95.0mb | -680kb | -0.7% | |[link sdk/Release][2] | 21.2mb | 20.9mb | -245kb | -1.2% | |[minimalistic app/Release][3] | 4.58mb | 4.32mb | -259kb | -5.7% | [1]: https://gist.github.com/rolfbjarne/3871e36d2de8db1a8eee1d9f9276d3d2#monotouch-test-release-wall-optimizations-enabled [2]: https://gist.github.com/rolfbjarne/3871e36d2de8db1a8eee1d9f9276d3d2#link-sdk [3]: https://gist.github.com/rolfbjarne/3871e36d2de8db1a8eee1d9f9276d3d2#minimalistic-app |
||
---|---|---|
.. | ||
xamarin-analysis-doc-tool | ||
Makefile | ||
README.md | ||
binding_objc_libs.md | ||
binding_types_reference_guide.md | ||
generator-errors.md | ||
mmp-errors.md | ||
mtouch-errors.md | ||
optimizations.md | ||
xamarin-ios-analysis.md |
README.md
This directory contains documentation files in markdown format.
They are included here to ensure any changes to
- Tools error codes;
- Binding attributes;
- Binding usage
are documented immediately, i.e. in the same commit that the change was introduced.
This also allows any contributor from the community to enhance the documentation with a pull-request.
The Makefile
can be used to copy the files into the documentation repo.
Once reviewed locally it can be merged just before the release.