tag:blogger.com,1999:blog-6459030366729235821.comments2014-04-17T15:29:39.159+01:00Are We There YetMartijn Verburghttp://www.blogger.com/profile/01458162075331573781noreply@blogger.comBlogger41125tag:blogger.com,1999:blog-6459030366729235821.post-31395321708096367512014-04-17T15:29:39.159+01:002014-04-17T15:29:39.159+01:00Unfortunately not no, we'll likely plan for th...Unfortunately not no, we'll likely plan for this next year.Martijn Verburghttps://www.blogger.com/profile/01458162075331573781noreply@blogger.comtag:blogger.com,1999:blog-6459030366729235821.post-18594139700202817072014-04-17T14:41:08.639+01:002014-04-17T14:41:08.639+01:00Does your censum tool analyze logs from IBM JVM?Does your censum tool analyze logs from IBM JVM?Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-6459030366729235821.post-81695482688900676902013-01-28T18:16:51.773+00:002013-01-28T18:16:51.773+00:00What versions of Jboss is this valid with? Will i...What versions of Jboss is this valid with? Will it work for JBoss 7<br />ThanksAnonymousnoreply@blogger.comtag:blogger.com,1999:blog-6459030366729235821.post-89995116252919157622013-01-21T17:19:54.367+00:002013-01-21T17:19:54.367+00:00Hi Will,
Thanks for your comment. So the code ver...Hi Will,<br /><br />Thanks for your comment. So the code very roughly:<br /><br />1 Has a handle on the text file (a .lst proprietary format)<br />2 Loads all of the data into memory<br />3 Updates a Character Document Object Model (CDOM) with the data<br />4 Keeps some data cached as pure reference data (like a database table with static data, but in memory)<br />5 Releases the handle to the text file<br /><br />At this stage all of the data is needed to be kept in memory in order for the CDOM to correctly model the character as it gains and loses levels, as well as having classes, abilities, templates, feats, spells, equipment and much more change its stats!<br /><br />So it's hard to see what we could remove in terms of holding references - but we certainly can reduce the size of the overal CDOM per character as well as the static data...<br /><br />It's a fun engineering effort for the team!Martijn Verburghttps://www.blogger.com/profile/01458162075331573781noreply@blogger.comtag:blogger.com,1999:blog-6459030366729235821.post-20275012347844870982013-01-18T23:33:21.019+00:002013-01-18T23:33:21.019+00:00It looks like you are loading a lot of those text-...It looks like you are loading a lot of those text-based config files and holding on to them. If you were more aggressive about removing references to the text config files in memory, that should help...?Willhttps://www.blogger.com/profile/10245838878774225257noreply@blogger.comtag:blogger.com,1999:blog-6459030366729235821.post-49164059456354089952013-01-18T10:54:01.408+00:002013-01-18T10:54:01.408+00:00Hi Ryan,
Thanks for commenting!
Log vs Realtime ...Hi Ryan,<br /><br />Thanks for commenting!<br /><br />Log vs Realtime processing:<br />------------------------<br /><br />Just to be clear - you can feed the log into a number of tools or even just read it yourself if you have the time and the experience. It certainly doesn't have to be fed into Censum!<br /><br />You're quite correct that post processing a log is not the only way to determine how to tune a GC. But trying to tune 'live' or in real time GC information has several disadvantages:<br /><br />* Connecting to a live running JVM using the GC MXBeans actually creates its own objects (and therefore garbage) impacting the very application you're trying to tune.<br /><br />* The MXBeans don't give you as much information as the logs can (it's a limited API).<br /><br />* Real time analysis only gives you a short window for analysis, so you don't see the full picture of how the memory in your application is behaving over it's natural cycle (e.g. A payroll application over the period of a day's work, or even a week given the Friday afternoon timesheet rush). Tuning based only on partial data can cause major problems for your application.<br /><br />Other tools vs Censum:<br />--------------------<br /><br />GCViewer is pretty decent, as is HPJmeter - but when we polled large numbers of developers and operations folk, we discovered that a majority of them didn't have the time to learn how to interpret the results that those tools give out. They were also often dealing with an emergency production issue and wanted the tool to tell them exactly where the problem was and what to do about it.<br /><br />We're trying very hard with Censum to give that definitive answer (as much as is mathematically possible) and make a solid recommendation (e.g. Set your NewSize=X). We still have some ways to go before we can recommend in all cases, but Censum is constantly learning and we're confident the accuracy and range of analytics will continue to improve as the machine learning and modelling we use gets more data.<br /><br />G1:<br />---<br /><br />Your comments here are really interesting - we haven't heard those levels of confidence about G1 from anyone, even including the Oracle guys themselves who wrote it! G1 has only just gain official blessing from Oracle as a supported GC - we'll be watching it with interest but we have our doubts that it will 'automatically' fix everything. Not even Azul claims that their pauseless C4 GC does that :-).<br /><br />I noticed the GCViewer actually has some G1 support in it - so I guess it's still of need/interest to analyse G1 and tune it.<br /><br />OpenJDK and the Java community at large could really benefit from your findings, please do post them to the GC and hotspot mailing lists! If G1 can be proven to be in almost all cases better than existing collectors, that's a great leap forward for everyone.<br /><br />Thanks again and if you'd like an eval copy of Censum, let me know :-).Martijn Verburghttps://www.blogger.com/profile/01458162075331573781noreply@blogger.comtag:blogger.com,1999:blog-6459030366729235821.post-65122312237211014752013-01-18T04:35:52.625+00:002013-01-18T04:35:52.625+00:00I understand this is a blog post meant to shill Ce...I understand this is a blog post meant to shill Censum - but your point that being able to tune GC using only GC log files is totally wrong... especially considering the fact that you feed GC log files INTO censum. <br /><br />The free open source GCViewer doesn't have the same "wizards" that Censum has, but it does provide a very good summary of the pause times from a GC log and it makes it very easy to tune an app's GC performance. <br /><br />With the results I've been seeing as we've been moving towards using G1 in production with our apps, G1 may make a lot of GC tuning a thing of the past (so by the time Censum would really hit traction in the market, G1 might eliminate the need for such a tool)Ryanhttps://www.blogger.com/profile/02926383743502657473noreply@blogger.comtag:blogger.com,1999:blog-6459030366729235821.post-56425632844671540522012-08-18T10:28:21.280+01:002012-08-18T10:28:21.280+01:00I think Java is not dead because it is one of the ...I think Java is not dead because it is one of the secure languages. Basically, it use for gaming, web application and database development.<br />EricLewishttps://www.blogger.com/profile/02147527266115278010noreply@blogger.comtag:blogger.com,1999:blog-6459030366729235821.post-59881207075104396522011-10-19T17:17:08.880+01:002011-10-19T17:17:08.880+01:00yes, the extra helpers was a great addition.yes, the extra helpers was a great addition.Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-6459030366729235821.post-22052167682082067532011-10-07T01:19:40.271+01:002011-10-07T01:19:40.271+01:00Thanks Martijn for the update. I saw the webcast ...Thanks Martijn for the update. I saw the webcast for Mark Reinhold's keynote on Java 7 and 8 and it was pretty cool.Satheeshnoreply@blogger.comtag:blogger.com,1999:blog-6459030366729235821.post-72625243672050097232011-05-26T19:49:34.074+01:002011-05-26T19:49:34.074+01:00Absolutely, transparency and openness is the key a...Absolutely, transparency and openness is the key area we'll be working with the JCP on.Martijn Verburghttps://www.blogger.com/profile/01458162075331573781noreply@blogger.comtag:blogger.com,1999:blog-6459030366729235821.post-23217757510586942432011-05-26T12:20:09.127+01:002011-05-26T12:20:09.127+01:00Is this something that will get more transparency ...Is this something that will get more transparency with the LJC on the JCP?Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-6459030366729235821.post-89551281504549000982011-03-30T19:51:56.085+01:002011-03-30T19:51:56.085+01:00I'm told that the tooling is now adequate, alt...I'm told that the tooling is now adequate, although not yet standardised in some areas. I think that could certainly push that aspect from 'Working on improving' to 'the Ugly' :)Martijn Verburghttps://www.blogger.com/profile/01458162075331573781noreply@blogger.comtag:blogger.com,1999:blog-6459030366729235821.post-44164101229705787552011-03-30T19:44:24.948+01:002011-03-30T19:44:24.948+01:00so not ready for primetime but the only "ugly...so not ready for primetime but the only "ugly" you had was Jigsaw? Having used OSGi on a production enterprise app I can say it has it's place. Definitely in greenfield enterprise app development or complete refactoring into "OSGi way".. Our attempt was embedding it inside a legacy J2EE app.. it was a horrible mess.. worst of both worlds.. JAR file hell from the legacy app and every complication of OSGi (lack of tools, build support etc..) Took the build team 6 months to get an automated CI build going.. Glad I left that company!Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-6459030366729235821.post-40854266208227366772010-11-20T13:55:44.051+00:002010-11-20T13:55:44.051+00:00I strongly agree with everything that has been sai...I strongly agree with everything that has been said, but one thing I can't understand is the progress on the desktop bit. Java has such a strong community I'm confident they can come up with something that is out of this world!<br /><br />-Java AmateurAnonymousnoreply@blogger.comtag:blogger.com,1999:blog-6459030366729235821.post-13708994676528515262010-11-16T16:19:48.808+00:002010-11-16T16:19:48.808+00:00Just for the record, I don't think there's...Just for the record, I don't think there's any reason Java couldn't have a great future as a desktop client. Here is a beautiful Swing app to show it's potential:<br /><br />http://www.indabamusic.com/landing/mantis<br /><br />JavaFX is nice, but it falls apart when you try to do anything complex, so I don't pin my hopes on that.Bjorn Rochehttps://www.blogger.com/profile/17072425815152893296noreply@blogger.comtag:blogger.com,1999:blog-6459030366729235821.post-88566117927729837282010-11-16T12:33:53.039+00:002010-11-16T12:33:53.039+00:00Java is officially in the wrong hands, lets hope G...Java is officially in the wrong hands, lets hope Google take it on. Otherwise the academic institutions will stop producing the huge numbers of Java programmers we see today, the big corporates will slowly but surely see that there are much better alternatives to Java and the myriad of Java add-ons will (rightfully so in many cases) never see wide adoption.Mark Beebyhttp://www.headenergy.co.uknoreply@blogger.comtag:blogger.com,1999:blog-6459030366729235821.post-8623346500931907542010-11-16T11:24:35.736+00:002010-11-16T11:24:35.736+00:00Thanks Steven. I've posted again with the late...Thanks Steven. I've posted again with the latest news. Enjoy!Martijn Verburghttps://www.blogger.com/profile/01458162075331573781noreply@blogger.comtag:blogger.com,1999:blog-6459030366729235821.post-67947068091523844672010-11-16T10:27:32.867+00:002010-11-16T10:27:32.867+00:00Nice post! I agree that the Oracle and Google laws...Nice post! I agree that the Oracle and Google lawsuit has really mucked things up for Harmony, but now that Apple and IBM have thrown their collective weight behind OpenJDK, it leaves Project Harmony in an even more precarious position.<br /><br />Interesting times indeed!Stevenhttps://www.blogger.com/profile/01576193449065287575noreply@blogger.comtag:blogger.com,1999:blog-6459030366729235821.post-57585004761173543422010-10-27T09:36:28.585+01:002010-10-27T09:36:28.585+01:00Hi David,
Thanks for the kind words! Yes Manning...Hi David,<br /><br />Thanks for the kind words! Yes Manning suggested using that title (it's changed slightly now) as it fell in line with your "The Well-Grounded Rubyist". Hopefully both books will do well and we can keep the series going . See you in the MEAP no doubt!<br /><br />Cheers,<br />MartijnMartijn Verburghttps://www.blogger.com/profile/01458162075331573781noreply@blogger.comtag:blogger.com,1999:blog-6459030366729235821.post-55130975416571999602010-10-27T09:29:54.135+01:002010-10-27T09:29:54.135+01:00Congrats on the book! And I'm so pleased that ...Congrats on the book! And I'm so pleased that you're adapting my title. I'd always hoped someone would -- it could make a great basis for a series, if I say so myself. <br /><br />I was inspired directly by "The Well-Tempered Clavier". I'm not sure how I made the leap to "Well-Grounded Rubyist", but Bach was definitely the starting point. I was worried at first that Manning wouldn't accept the title, since it didn't match any of their existing series and had a pretty strongly "branded" sound of its own. To my delight they did like it, and I'm glad to see it have new life. <br /><br />Best wishes for the project!<br /><br /><br />David BlackDavid A. Blackhttp://www.compleatrubyist.comnoreply@blogger.comtag:blogger.com,1999:blog-6459030366729235821.post-55372286901376317872010-10-16T15:40:48.152+01:002010-10-16T15:40:48.152+01:00Hi Arul,
I see you've joined up to out mailin...Hi Arul,<br /><br />I see you've joined up to out mailing list - we'll be letting people know when they can start reviewing once the book is in the MEAP stage.<br /><br />Cheers,<br />MartijnMartijn Verburghttps://www.blogger.com/profile/01458162075331573781noreply@blogger.comtag:blogger.com,1999:blog-6459030366729235821.post-86090293896363048432010-10-14T20:05:02.732+01:002010-10-14T20:05:02.732+01:00Hi Martijn,
I am interested too. Let me know if y...Hi Martijn,<br /><br />I am interested too. Let me know if you are still looking for one.<br /><br />-ArulArulhttp://aruld.infonoreply@blogger.comtag:blogger.com,1999:blog-6459030366729235821.post-21571078551382126342010-08-24T12:36:41.878+01:002010-08-24T12:36:41.878+01:00Hi Sandro,
Yes that's correct, the Java 7 DI ...Hi Sandro,<br /><br />Yes that's correct, the Java 7 DI specification relies on an external IoC container. However, you can annotate your POJOs with pure Java 7 annotations which means you can move between containers at will (no container lock-in).<br /><br />Spring 3 and Guice 2 already support this standard as it were, so you can try it out early.<br /><br />Cheers,<br />MartijnMartijn Verburghttps://www.blogger.com/profile/01458162075331573781noreply@blogger.comtag:blogger.com,1999:blog-6459030366729235821.post-77543677265529289932010-08-24T11:32:52.475+01:002010-08-24T11:32:52.475+01:00Hi Martijn
You wrote: "You can annotate a c...Hi Martijn <br /><br />You wrote: "You can annotate a constructor with @Inject and expect its parameters to be provided at runtime by your "configured" IoC container"<br /><br />Does it mean that Java 7, in order to provide dependency injection, relies on external IoC containers like Spring, Pico, etc? <br /><br />Can Java 7 provide DI on its own? Could I remove my IoC containers and use a pure Java 7 implementation?<br /><br />Thanks for the post. Look forward for your book.Sandro Mancusohttps://www.blogger.com/profile/02110812790722611225noreply@blogger.com