jmc
Зеркало из https://github.com/openjdk/jmc
1<?xml version="1.0" encoding="ISO-8859-1"?>
2<?xml-stylesheet type="text/xsl" href="stylesheet.xsl"?>
3<notes>4<component>5<name>General</name>6<note version="9.0">7<title>JMC 9 - New Release!</title>8<description>9This is the latest (2024) major release of JDK Mission Control. JMC 9 requires JDK 17+ to run and introduces
10several new features, enhancements, and bug fixes. This version continues to support connecting to, and parsing
11JFR recordings from, OpenJDK 8u272+ and Oracle JDK 7u40+, and can open and visualize flight recordings from JDK 7
12and 8. JDK Mission Control is available for Windows (x86_64), Mac OS X (ARM and x86_64), and Linux (ARM and x86_64).
13</description>14<image>general/jmc.png</image>15</note>16<note version="9.0">17<title>Eclipse 4.30 support</title>18<description>19The Mission Control client is now built to run optimally
20on Eclipse 2023-12 and later. To install JDK Mission Control into
21Eclipse, go to the update site (Help | Install New Software...). The
22URL to the update site will be vendor specific, and some vendors
23will instead provide an archive with the update site.
24</description>25<image>general/eclipse.png</image>26</note>27<note version="9.0">28<title>Support for Linux/aarch64</title>29<description>30JMC 9 is now built for Linux aarch64.
31</description>32<image>general/linuxaarch64.png</image>33</note>34<note version="9.0">35<title>Support for dark mode</title>36<description>37JMC 9 now supports dark mode. Go to Preferences, General | Appearance, and select the Dark theme to enable.
38</description>39<image>general/darkmode.png</image>40</note>41<note version="9.0">42<title>Minor bugfixes and improvements</title>43<description>44There are 118 fixes and improvements in this release.
45Check out the JMC 9.0 Result Dashboard
46(https://bugs.openjdk.org/secure/Dashboard.jspa?selectPageId=21800)
47for more information.
48</description>49<image>general/issues.png</image>50</note>51<note version="9.0">52<title>Add user configuration for local JVM refresh interval</title>53<description>54Previously the JVM Browser checked every 5000 ms for new JVMs. This can now be configured.
55</description>56<image>general/refreshinterval.png</image>57</note>58</component>59<component>60<name>Core</name>61<!-- Core library enhancements for JMC 9 -->62<note version="9.0">63<title>Better JFR parser performance</title>64<description>65Multiple efforts have been made to reduce allocations in the JMC parser, including:
66reduced allocation of Doubles, reduced allocation rate in ParserStats.
67Also, when duration events aren't ordered by their end time (e.g. events which stack so that the last
68event finishes first, or file reads with overlaps) `DisjointBuilder.add` can be slow because of
69the linear search for the lane, and then a linear time reordering. This has been improved with
70a binary search.
71</description>72<image>jfr/jfrperformance.png</image>73</note>74<note version="9.0">75<title>Support checkpoint event sizes beyond u4 limit</title>76<description>77The JMC JFR parser now support checkpoint event sizes beyond the u4 limit.
78</description>79<image>jfr/checkpointsize.png</image>80</note>81<note version="9.0">82<title>Move non-Eclipse dependent classes from org.openjdk.jmc.ui.common to org.openjdk.jmc.common</title>83<description>84There were a number of classes previously in jmc.ui.common that would be a great asset to the core distribution
85(and the third-party applications that consume jmc-core), and these classes now live in jmc.common.
86Please see JMC-7308 for further information.
87</description>88<image>general/reorganize.png</image>89</note>90<note version="9.0">91<title>Move rjmx bundle from application to core</title>92<description>93The rjmx classes and related services (FlightRecorderService) are now exposed for third-party application usage.
94Please see JMC-7069 for further information.
95</description>96<image>general/reorganize.png</image>97</note>98<note version="9.0">99<title>Move org.openjdk.jmc.flightrecorder.configuration bundle from application to core</title>100<description>101The org.openjdk.jmc.flightrecorder.configuration bundle contains many classes useful for working with jfr,
102and are now available in core. Please see JMC-7307 for further information.
103</description>104<image>general/reorganize.png</image>105</note>106</component>107<component>108<name>Java Flight Recorder (JFR)</name>109<!-- JFR improvements for JMC 9 -->110<note version="9.0">111<title>The Event Browser now supports searching and showing event type ids</title>112<description>113Searching in the search bar now also searches event type IDs, and there is also a
114(by default hidden) column that makes it easy to show the event type IDs for the shown events.
115</description>116<image>jfr/eventtypeid.png</image>117</note>118<note version="9.0">119<title>Add support for enabling jfr on native images</title>120<description>121Previously JMC was unable to start flightrecorder on a graalvm native image, even if there is
122built-in jfr support. This has now been fixed.
123</description>124<image>jfr/native-image-alt.png</image>125</note>126<note version="9.0">127<title>Provide an alternative Java based flamegraph visualization</title>128<description>129The previous flamegraph visualization takes place in an embedded browser component (provided
130by the Eclipse platform), unfortunately this approach has some drawbacks, the first being a bit slow.
131This view is now using a Java (Swing) based flamegraph library. Also, the flame graph model creation
132performance have been improved.
133</description>134<image>jfr/flamegraph.png</image>135</note>136<note version="9.0">137<title>Visualization and Rule for FileChannel.force()</title>138<description>139The File I/O page has been updated to show force related information. There are two new columns added - Force Count and Update Metadata. Both are hidden by default and can be enabled by right clicking the table.
140The chart will also include a File Force row. There is a preference setting for the associated file force rule, where the peak duration warning limit can be set.
141See JMC PR#533 for more information.
142</description>143<image>jfr/fileforce.png</image>144</note>145<note version="9.0">146<title>Rule that checks on G1 pause time target compliance</title>147<description>148New rule that looks at the pause time target and compares it to the actual pauses.
149</description>150<image>jfr/rule.png</image>151</note>152<note version="9.0">153<title>Rule that looks at finalization statistics</title>154<description>155JDK 18 comes with a FinalizationStatistics event that helps users find where in their application
156finalizers are run. This is important as finalization has been deprecated for removal in a future
157release. For more information about finalization and its flaws, see https://openjdk.java.net/jeps/421.
158Even if an application doesn't implement any finalize() methods, it may rely on third-party libraries
159that does. Static analysis of third-party libraries using "jdeprscan --for-removal" can be used to list
160those classes, but it will not tell if they are being used. For example, an application may be missing
161a call to a close() method, so the resource is cleaned up by the finalizer, which is sub-optimal.
162</description>163<image>jfr/rule.png</image>164</note>165<note version="9.0">166<title>Rule that detects GC Inverted Parallelism</title>167<description>168Rule inspired by the "Inverted Parallelism" analysis in Garbagecat. See JMC-8144 for more information.
169</description>170<image>jfr/rule.png</image>171</note>172<note version="9.0">173<title>Support for the new JPLIS agent events</title>174<description>175There is now a new page and rule for loaded JPLIS agents. See JMC-8054 for more information.
176</description>177<image>jfr/agent.png</image>178</note>179<note version="9.0">180<title>Twitter plug-in removed</title>181<description>182Due to changes in APIs and cost of maintenance, the Twitter plug-in has been removed.
183</description>184<image>jfr/twitterplugin.png</image>185</note>186</component>187<!-- Add more components as needed -->188<bugfixes>189<!-- Bug fixes in JMC 9 -->190<bugfix>191<area>Agent</area>192<bugid>8045</bugid>193<synopsis>retransformClasses() doesn't re-transform all needed classes</synopsis>194<description>195The retransformClasses() methods in Agent and AgentController use Class.forName() to try to get the
196class objects of classes needed to re-transform. This obviously doesn't work for classes loaded by
197classloaders different from the one which loads the agent. Those classes would be instrumented if
198they were loaded after their event probes were defined the AgentController. But when loaded earlier
199they would not be instrumented. This has been fixed.
200</description>201</bugfix>202<bugfix>203<area>Agent</area>204<bugid>8048</bugid>205<synopsis>Agent throws exceptions on missing or empty descriptions</synopsis>206<description>207When the description of an event or value is empty or missing, the agent fails with exceptions.
208This has now been fixed.
209</description>210</bugfix>211<bugfix>212<area>Console</area>213<bugid>8154</bugid>214<synopsis>Some JMX attributes are missing unit specifications in the Console</synopsis>215<description>216The missing unit specifications have now been added.
217</description>218</bugfix>219<bugfix>220<area>Core</area>221<bugid>8063</bugid>222<synopsis>IMCFrame Type cache not synchronized</synopsis>223<description>224The type cache used in the IMCFrame Type inner class wasn't synchronized and could cause a concurrent
225modification exception during e.g. JFR parsing. This has been fixed.
226</description>227</bugfix>228<bugfix>229<area>Core</area>230<bugid>8156</bugid>231<synopsis>JfrRulesReport.printReport does not respect verbosity for text and json</synopsis>232<description>233The verbosity flag for text and json reports didn't work. This has been fixed.
234</description>235</bugfix>236<bugfix>237<area>Core</area>238<bugid>8041</bugid>239<synopsis>JfrRulesReport json reports produce incomplete results</synopsis>240<description>241While generating JFR Rules Reports in json format, the results were incomplete. The components "message"
242and "detailedMessage" were not populated. This has been fixed.
243</description>244</bugfix>245<bugfix>246<area>JFR</area>247<bugid>7885</bugid>248<synopsis>Graphical rendering of dependency view fails due to heap memory drain</synopsis>249<description>250Also JMC-7496. The dependency view drains the heap memory and causes out-of-memory exceptions and performance delays.
251This has been improved.
252</description>253</bugfix>254</bugfixes>255<knownissues>256<issue>257<area>JFR</area>258<bugid>7071</bugid>259<synopsis>JMC can't attach to jlinked JVMs</synopsis>260<description>261This one is still under investigation, but it seems JMC
262can't attach to certain jlinked images.
263</description>264</issue>265<issue>266<area>JFR</area>267<bugid>7003</bugid>268<synopsis>The graph view, heatmap view and dependency view does not work on Windows269</synopsis>270<description>271This is due to a problem with the Windows based browser
272component in SWT. We're hoping for a fix in the component for a
273future version of the Eclipse platform.
274</description>275</issue>276</knownissues>277</notes>278