Nelze vybrat více než 25 témat Téma musí začínat písmenem nebo číslem, může obsahovat pomlčky („-“) a může být dlouhé až 35 znaků.

README-153.html 4.9KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
  2. <html> <head>
  3. <title>AspectJ 5 Development Kit v1.5.3 Readme</title>
  4. <style type="text/css">
  5. <!--
  6. P { margin-left: 20px; }
  7. PRE { margin-left: 20px; }
  8. LI { margin-left: 20px; }
  9. H4 { margin-left: 20px; }
  10. H3 { margin-left: 10px; }
  11. -->
  12. </style>
  13. </head>
  14. <body>
  15. <div align="right"><small>
  16. &copy; Copyright 2006 Contributors.
  17. All rights reserved.
  18. </small></div>
  19. <h1>AspectJ 5 v1.5.3 Readme</h1>
  20. <p>This release includes a number of bug fixes and enhancements (over 80). The full list of resolved issues can be found with
  21. <a href="https://bugs.eclipse.org/bugs/buglist.cgi?query_format=advanced&short_desc_type=allwordssubstr&short_desc=&product=AspectJ&target_milestone=1.5.3&long_desc_type=allwordssubstr&long_desc=&bug_file_loc_type=allwordssubstr&bug_file_loc=&status_whiteboard_type=allwordssubstr&status_whiteboard=&keywords_type=allwords&keywords=&bug_status=RESOLVED&bug_status=VERIFIED&bug_status=CLOSED&emailtype1=substring&email1=&emailtype2=substring&email2=&bugidtype=include&bug_id=&votes=&chfieldfrom=&chfieldto=Now&chfieldvalue=&cmdtype=doit&order=Reuse+same+sort+as+last+time&field0-0-0=noop&type0-0-0=noop&value0-0-0=">
  22. this bugzilla query</a>.
  23. </p>
  24. <p>
  25. Notable changes since the 1.5.2 release include:
  26. <br>
  27. <h2>Pipeline compilation - <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=146781">146781</a></h2>
  28. <p>Until this release, the memory profile for AspectJ looked like this (time is along the X axis, memory usage is the Y axis)</p>
  29. <code><pre>
  30. /\_
  31. / \_
  32. / \_
  33. / \_
  34. / \_
  35. / \
  36. </pre></code>
  37. <p>
  38. The first phase (as we go up and up and up) is the compilation of every file - when the peak is reached we then start weaving files one by one, discarding them once woven and dumped to disk.
  39. In 1.5.3 we don't compile everything up front - we compile and weave files one at a time. Giving us this profile:
  40. </p>
  41. <code><pre>
  42. /\ /\ /\
  43. / \/ \/ \
  44. / \
  45. </pre></code>
  46. <p>
  47. Each peak is compiling a file, then it is woven, dumped to disk and the space recovered (the trough) - we then move onto the next file.
  48. What does this mean? The peaks are far far lower, so you need far less memory to compile a project. For example, I have a 1000file project, affected by aspects at >750 join points.
  49. For given values of Xmx, here are the times taken to compile it (on the command line) with AspectJ1.5.2:</p>
  50. <pre><code>
  51. Xmx Time
  52. 512M 33seconds
  53. 256M 40seconds
  54. 220M 116seconds
  55. 212M OutOfMemory
  56. </pre></code>
  57. <p>The times gradually increase as the memory is reduced because the VM starts to thrash in garbage collection.
  58. Here are the results for AspectJ1.5.3:</p>
  59. <pre><code>
  60. Xmx Time
  61. 512M 33s
  62. 256M 33s
  63. 180M 33s
  64. 140M 33s
  65. 100M 35s
  66. 80M 43s
  67. 70M OutOfMemory
  68. </pre></code>
  69. <p>So with 1.5.3, it isn't until around 80M that the VM starts to struggle with memory. These savings will affect any code built from source: on the command line, in Ant,
  70. or in AJDT. It will not affect binary weaving - that is a future enhancement.</p>
  71. <h2>Serviceability - <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=150487">150487</a></h2>
  72. <p>As AspectJ grows in popularity, we find that it is becoming more difficult for users to come up with the small testcases
  73. that recreate problems - the usage scenarios for AJ are becoming more and more sophisticated. To help us work on
  74. problems in these scenarios we have added a tracing and logging framework and improved our dump mechanism. These traces and
  75. dumps can be attached to bug reports. In AspectJ 1.5.3 we have included
  76. some <a href="http://www.eclipse.org/aspectj/doc/released/pdguide/index.html">documentation</a> on how to configure these new features. Don't be surprised if you get asked
  77. for an AspectJ trace on a future bug report!
  78. </p>
  79. <h2>LTW enhancements</h2>
  80. <h3>User and System Configuration Files - <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=149289">149289</a></h3>
  81. <p>The <code>-outxml</code> option now generates a file named <code>META-INF/aop-ajc.xml</code>.
  82. This no longer clashes with a user defined <code>META-INF/aop.xml</code> configuration file.
  83. Both file names along with an OSGi-friendly <code>org/aspectj/aop.xml</code> (which can also be
  84. signed) are used by default to configure LTW.</p>
  85. <h3>Weaving Concrete Aspects Defined in aop.xml - <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=132080">132080</a></h3>
  86. <p>Concrete aspects defined using aop.xml are now exposed for weaving.</p>
  87. <h2>Pertypewithin enhancement - <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=123423">123423</a></h2>
  88. <p>It is now possible to ask an instance of a ptw aspect which type it is 'attached' to. The method:</p>
  89. <code><pre>String getWithinTypeName()</pre></code>
  90. <p>can be called on an aspect and will return the full qualified name of the type (eg. "com.foo.MyClass")
  91. </p>
  92. <hr>
  93. <p>For information on bug fixes in AspectJ 5 v1.5.3, see the <a href="changes.html"> changes</a> document.</p>
  94. </body>
  95. </html>