xamarin-macios/docs/website
Rolf Bjarne Kvinge c838a11c4d
Merge pull request #3495 (Implement support for optimizing away the dynamic registrar) from rolfbjarne/full-static-registrar
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
2018-02-15 23:56:00 +01:00
..
xamarin-analysis-doc-tool [xamarin-analysis] Add rule #6 and updated md file (#3088) 2017-12-12 12:43:36 -05:00
Makefile Update docs about build optimizations. (#3285) 2018-01-24 07:26:09 +01:00
README.md [docs] Ease tracking updates to code that requires change to the web site documentation (#573) 2016-08-08 17:07:59 -04:00
binding_objc_libs.md [docs] xamarin now requires markdown+yaml (#2258) 2017-07-12 21:29:47 -04:00
binding_types_reference_guide.md [generator] Add support for [DesignatedInitializer]. Fix #3247 (#3451) 2018-02-11 10:53:05 -05:00
generator-errors.md [generator] Teach generator about WrapAttribute on Getters and Setters (#3388) 2018-02-05 21:14:08 -06:00
mmp-errors.md [documentation] Update according to review. 2018-02-15 17:45:03 +01:00
mtouch-errors.md [documentation] Update according to review. 2018-02-15 17:45:03 +01:00
optimizations.md [documentation] Update according to review. 2018-02-15 17:45:03 +01:00
xamarin-ios-analysis.md [xamarin-analysis] Add XIA0007 to docs/website/xamarin-ios-analysis.md (#3498) 2018-02-15 14:14:35 -05:00

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.