<?xml version="1.0" encoding="UTF-8"?> <rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" ><channel><title>Java Code Geeks &#187; Martin Thompson</title> <atom:link href="http://www.javacodegeeks.com/author/Martin-Thompson/feed" rel="self" type="application/rss+xml" /><link>http://www.javacodegeeks.com</link> <description>Java 2 Java Developers Resource Center</description> <lastBuildDate>Wed, 22 May 2013 19:00:18 +0000</lastBuildDate> <language>en-US</language> <sy:updatePeriod>hourly</sy:updatePeriod> <sy:updateFrequency>1</sy:updateFrequency> <generator>http://wordpress.org/?v=3.5.1</generator> <item><title>CPU Cache Flushing Fallacy</title><link>http://www.javacodegeeks.com/2013/02/cpu-cache-flushing-fallacy.html</link> <comments>http://www.javacodegeeks.com/2013/02/cpu-cache-flushing-fallacy.html#comments</comments> <pubDate>Mon, 18 Feb 2013 08:00:53 +0000</pubDate> <dc:creator>Martin Thompson</dc:creator> <category><![CDATA[Software Development]]></category><guid isPermaLink="false">http://www.javacodegeeks.com/?p=8712</guid> <description><![CDATA[Even from highly experienced technologists I often hear talk about how certain operations cause a CPU cache to &#8216;flush&#8217;. This seems to be illustrating a very common fallacy about how CPU caches work, and how the cache sub-system interacts with the execution cores. In this article I will attempt to explain the function CPU caches [...]]]></description> <wfw:commentRss>http://www.javacodegeeks.com/2013/02/cpu-cache-flushing-fallacy.html/feed</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Compact Off-Heap Structures/Tuples In Java</title><link>http://www.javacodegeeks.com/2012/10/compact-off-heap-structurestuples-in.html</link> <comments>http://www.javacodegeeks.com/2012/10/compact-off-heap-structurestuples-in.html#comments</comments> <pubDate>Fri, 19 Oct 2012 16:00:00 +0000</pubDate> <dc:creator>Martin Thompson</dc:creator> <category><![CDATA[Core Java]]></category> <category><![CDATA[Garbage Collection]]></category> <category><![CDATA[JVM]]></category><guid isPermaLink="false">http://www.javacodegeeks.com/2012/10/compact-off-heap-structurestuples-in-java.html</guid> <description><![CDATA[In my last post I detailed the implications of the access patterns your code takes to main memory. Since then I&#8217;ve had a lot of questions about what can be done in Java to enable more predictable memory layout. There are patterns that can be applied using array backed structures which I will discuss in [...]]]></description> <wfw:commentRss>http://www.javacodegeeks.com/2012/10/compact-off-heap-structurestuples-in.html/feed</wfw:commentRss> <slash:comments>1</slash:comments> </item> <item><title>Modelling Is Everything</title><link>http://www.javacodegeeks.com/2012/08/modelling-is-everything.html</link> <comments>http://www.javacodegeeks.com/2012/08/modelling-is-everything.html#comments</comments> <pubDate>Thu, 09 Aug 2012 19:00:00 +0000</pubDate> <dc:creator>Martin Thompson</dc:creator> <category><![CDATA[Software Development]]></category> <category><![CDATA[DDD]]></category> <category><![CDATA[Domain Driven Design]]></category><guid isPermaLink="false">http://www.javacodegeeks.com/2012/10/modelling-is-everything.html</guid> <description><![CDATA[I’m often asked, “What is the best way to learn about building high-performance systems”? There are many perfectly valid answers to this question but there is one thing that stands out for me above everything else, and that is modelling. Modelling what you need to implement is the most important and effective step in the [...]]]></description> <wfw:commentRss>http://www.javacodegeeks.com/2012/08/modelling-is-everything.html/feed</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Memory Access Patterns Are Important</title><link>http://www.javacodegeeks.com/2012/08/memory-access-patterns-are-important.html</link> <comments>http://www.javacodegeeks.com/2012/08/memory-access-patterns-are-important.html#comments</comments> <pubDate>Mon, 06 Aug 2012 13:00:00 +0000</pubDate> <dc:creator>Martin Thompson</dc:creator> <category><![CDATA[Core Java]]></category> <category><![CDATA[JVM]]></category> <category><![CDATA[Memory]]></category><guid isPermaLink="false">http://www.javacodegeeks.com/2012/10/memory-access-patterns-are-important.html</guid> <description><![CDATA[In high-performance computing it is often said that the cost of a cache-miss is the largest performance penalty for an algorithm. For many years the increase in speed of our processors has greatly outstripped latency gains to main-memory. Bandwidth to main-memory has greatly increased via wider, and multi-channel, buses however the latency has not significantly [...]]]></description> <wfw:commentRss>http://www.javacodegeeks.com/2012/08/memory-access-patterns-are-important.html/feed</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Single Writer Principle</title><link>http://www.javacodegeeks.com/2012/08/single-writer-principle.html</link> <comments>http://www.javacodegeeks.com/2012/08/single-writer-principle.html#comments</comments> <pubDate>Thu, 02 Aug 2012 19:00:00 +0000</pubDate> <dc:creator>Martin Thompson</dc:creator> <category><![CDATA[Software Development]]></category> <category><![CDATA[Disruptor]]></category> <category><![CDATA[Performance]]></category><guid isPermaLink="false">http://www.javacodegeeks.com/2012/10/single-writer-principle.html</guid> <description><![CDATA[When trying to build a highly scalable system the single biggest limitation on scalability is having multiple writers contend for any item of data or resource. Sure, algorithms can be bad, but let’s assume they have a reasonable Big O notation so we&#8217;ll focus on the scalability limitations of the systems design. I keep seeing [...]]]></description> <wfw:commentRss>http://www.javacodegeeks.com/2012/08/single-writer-principle.html/feed</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Smart Batching</title><link>http://www.javacodegeeks.com/2012/08/smart-batching.html</link> <comments>http://www.javacodegeeks.com/2012/08/smart-batching.html#comments</comments> <pubDate>Wed, 01 Aug 2012 22:00:00 +0000</pubDate> <dc:creator>Martin Thompson</dc:creator> <category><![CDATA[Enterprise Java]]></category> <category><![CDATA[Disruptor]]></category> <category><![CDATA[Performance]]></category><guid isPermaLink="false">http://www.javacodegeeks.com/2012/10/smart-batching.html</guid> <description><![CDATA[How often have we all heard that “batching” will increase latency? As someone with a passion for low-latency systems this surprises me. In my experience when batching is done correctly, not only does it increase throughput, it can also reduce average latency and keep it consistent. Well then, how can batching magically reduce latency? It [...]]]></description> <wfw:commentRss>http://www.javacodegeeks.com/2012/08/smart-batching.html/feed</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Smart Batching</title><link>http://www.javacodegeeks.com/2012/07/smart-batching.html</link> <comments>http://www.javacodegeeks.com/2012/07/smart-batching.html#comments</comments> <pubDate>Thu, 26 Jul 2012 22:00:00 +0000</pubDate> <dc:creator>Martin Thompson</dc:creator> <category><![CDATA[Enterprise Java]]></category> <category><![CDATA[Disruptor]]></category> <category><![CDATA[Performance]]></category><guid isPermaLink="false">http://www.javacodegeeks.com/2012/10/smart-batching-2.html</guid> <description><![CDATA[How often have we all heard that “batching” will increase latency? As someone with a passion for low-latency systems this surprises me. In my experience when batching is done correctly, not only does it increase throughput, it can also reduce average latency and keep it consistent. Well then, how can batching magically reduce latency? It [...]]]></description> <wfw:commentRss>http://www.javacodegeeks.com/2012/07/smart-batching.html/feed</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Java Lock Implementations</title><link>http://www.javacodegeeks.com/2012/07/java-lock-implementations.html</link> <comments>http://www.javacodegeeks.com/2012/07/java-lock-implementations.html#comments</comments> <pubDate>Tue, 24 Jul 2012 13:00:00 +0000</pubDate> <dc:creator>Martin Thompson</dc:creator> <category><![CDATA[Core Java]]></category> <category><![CDATA[Locks]]></category> <category><![CDATA[Performance]]></category><guid isPermaLink="false">http://www.javacodegeeks.com/2012/10/java-lock-implementations.html</guid> <description><![CDATA[We all use 3rd party libraries as a normal part of development. Generally, we have no control over their internals. The libraries provided with the JDK are a typical example. Many of these libraries employ locks to manage contention. JDK locks come with two implementations. One uses atomic CAS style instructions to manage the claim [...]]]></description> <wfw:commentRss>http://www.javacodegeeks.com/2012/07/java-lock-implementations.html/feed</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Java Sequential IO Performance</title><link>http://www.javacodegeeks.com/2012/07/java-sequential-io-performance.html</link> <comments>http://www.javacodegeeks.com/2012/07/java-sequential-io-performance.html#comments</comments> <pubDate>Fri, 20 Jul 2012 19:00:00 +0000</pubDate> <dc:creator>Martin Thompson</dc:creator> <category><![CDATA[Core Java]]></category> <category><![CDATA[NIO]]></category> <category><![CDATA[Performance]]></category><guid isPermaLink="false">http://www.javacodegeeks.com/2012/10/java-sequential-io-performance.html</guid> <description><![CDATA[Many applications record a series of events to file-based storage for later use. This can be anything from logging and auditing, through to keeping a transaction redo log in an event sourced design or its close relative CQRS. Java has a number of means by which a file can be sequentially written to, or read [...]]]></description> <wfw:commentRss>http://www.javacodegeeks.com/2012/07/java-sequential-io-performance.html/feed</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Applying Back Pressure When Overloaded</title><link>http://www.javacodegeeks.com/2012/07/applying-back-pressure-when-overloaded.html</link> <comments>http://www.javacodegeeks.com/2012/07/applying-back-pressure-when-overloaded.html#comments</comments> <pubDate>Thu, 19 Jul 2012 01:00:00 +0000</pubDate> <dc:creator>Martin Thompson</dc:creator> <category><![CDATA[Software Development]]></category> <category><![CDATA[Architecture]]></category> <category><![CDATA[Performance]]></category><guid isPermaLink="false">http://www.javacodegeeks.com/2012/10/applying-back-pressure-when-overloaded.html</guid> <description><![CDATA[How should a system respond when under sustained load? Should it keep accepting requests until its response times follow the deadly hockey stick, followed by a crash? All too often this is what happens unless a system is designed to cope with the case of more requests arriving than is it capable of processing. If [...]]]></description> <wfw:commentRss>http://www.javacodegeeks.com/2012/07/applying-back-pressure-when-overloaded.html/feed</wfw:commentRss> <slash:comments>0</slash:comments> </item> </channel> </rss>
<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using disk: basic
Page Caching using disk: enhanced
Database Caching 2/4 queries in 0.001 seconds using apc
Object Caching 1131/1132 objects using apc
Content Delivery Network via jcg.javacodegeeks.netdna-cdn.com

Served from: www.javacodegeeks.com @ 2013-05-22 22:20:28 -->