{"id":466,"date":"2011-07-18T08:45:00","date_gmt":"2011-07-18T08:45:00","guid":{"rendered":"http:\/\/www.javacodegeeks.com\/2012\/10\/jvm-options-client-vs-server.html"},"modified":"2012-10-21T19:59:15","modified_gmt":"2012-10-21T19:59:15","slug":"jvm-options-client-vs-server","status":"publish","type":"post","link":"https:\/\/www.javacodegeeks.com\/2011\/07\/jvm-options-client-vs-server.html","title":{"rendered":"JVM options: -client vs -server"},"content":{"rendered":"<p>Have you ever wonder what is this -client or -server switch when you run your java app? e.g.:<\/p>\n<pre class=\"brush:bash\">javaw.exe -client com.blogspot.sdoulger.LoopTest\r\n<\/pre>\n<p>that are also displayed in the Help of the java.exe e.g. where options include:<\/p>\n<p>-client       to select the &#8220;client&#8221; VM<br \/>\n-server      to select the &#8220;server&#8221; VM<\/p>\n<div class=\"separator\" style=\"clear: both;text-align: center\"><a href=\"http:\/\/1.bp.blogspot.com\/-F499eWmPC8w\/TiMh2nXk-NI\/AAAAAAAAAEg\/yiSvJUpteYQ\/s1600\/server-vs-client.png\"><img decoding=\"async\" border=\"0\" height=\"192\" src=\"http:\/\/1.bp.blogspot.com\/-F499eWmPC8w\/TiMh2nXk-NI\/AAAAAAAAAEg\/yiSvJUpteYQ\/s320\/server-vs-client.png\" width=\"320\" \/><\/a><\/div>\n<p><strong>What&#8217;s the difference between the -client and -server systems?<\/strong><\/p>\n<p>These two systems are different binaries. They are essentially two different compilers (JITs) interfacing to the same runtime system. The client system is optimal for applications which need fast startup times or small footprints, the server system is optimal for applications where the overall performance is most important. In general the client system is better suited for interactive applications such as GUIs. Some of the other differences include the compilation policy,heap defaults, and inlining policy.<\/p>\n<div class=\"separator\" style=\"clear: both;text-align: center\"><a href=\"http:\/\/4.bp.blogspot.com\/-jf3XClT5seg\/TiMiYZm3hpI\/AAAAAAAAAEk\/8o_q2AZyJaQ\/s1600\/client-server-plug.gif\"><img decoding=\"async\" border=\"0\" src=\"http:\/\/4.bp.blogspot.com\/-jf3XClT5seg\/TiMiYZm3hpI\/AAAAAAAAAEk\/8o_q2AZyJaQ\/s1600\/client-server-plug.gif\" \/><\/a><\/div>\n<p>According to &#8220;<a href=\"http:\/\/java.sun.com\/products\/hotspot\/whitepaper.html\">The Java HotSpot Performance Engine Architecture<\/a>&#8220;:<\/p>\n<p>The JDK includes two flavors of the VM &#8212; a client-side offering, and a  VM tuned for server applications. These two solutions share the Java  HotSpot runtime environment code base, but use different compilers that  are suited to the distinctly unique performance characteristics of  clients and servers. These differences include the compilation inlining  policy and heap defaults.<\/p>\n<p>The JDK contains both of the these systems in the distribution, so developers can choose which system they want by specifying -client or -server.<\/p>\n<p>Although the Server and the Client VMs are similar, the Server VM has been specially tuned to maximize peak operating speed. It is intended for executing long-running server applications, which need the fastest possible operating speed more than a fast start-up time or smaller runtime memory footprint.<div style=\"display:inline-block; margin: 15px 0;\"> <div id=\"adngin-JavaCodeGeeks_incontent_video-0\" style=\"display:inline-block;\"><\/div> <\/div><\/p>\n<p>The Client VM compiler serves as an upgrade for both the Classic VM and the just-in-time (JIT) compilers used by previous versions of the JDK. The Client VM offers improved run time performance for applications and applets. The Java HotSpot Client VM has been specially tuned to reduce application start-up time and memory footprint, making it particularly well suited for client environments. In general, the client system is better for GUIs.<\/p>\n<p>The Client VM compiler does not try to execute many of the more complex optimizations performed by the compiler in the Server VM, but in exchange, it requires less time to analyze and compile a piece of code. This means the Client VM can start up faster and requires a smaller memory footprint.<\/p>\n<p><u>Note:<\/u> It seems that the main cause of the difference in performance is the amount of optimizations.<\/p>\n<p>The Server VM contains an advanced adaptive compiler that supports many of the same types of optimizations performed by optimizing C++ compilers, as well as some optimizations that cannot be done by traditional compilers, such as aggressive inlining across virtual method invocations. This is a competitive and performance advantage over static compilers. Adaptive optimization technology is very flexible in its approach, and typically outperforms even advanced static analysis and compilation techniques.<\/p>\n<p>Both solutions deliver extremely reliable, secure, and maintainable environments to meet the demands of today&#8217;s enterprise customers.<\/p>\n<p>Default options:<\/p>\n<ul>\n<li>For Hotspot is client<\/li>\n<li>For JRockit is server<\/li>\n<\/ul>\n<p><strong>JRockit&#8217;s  client and server VM  options<\/strong><br \/>\nJRockit also has this two options with the default being server option (Hotspot is client).<br \/>\nJRockit client option is -client and  server is -jrockit.<\/p>\n<p><strong>Hands-on example on the performance difference<\/strong><br \/>\nAn example taken from <a href=\"http:\/\/www.onkarjoshi.com\/blog\/174\/hotspot-jvm-client-server-vm-optimization\/\">Onkar Joshi&#8217;s blog<\/a> that proves the performance difference.<\/p>\n<p>We run the following code with both switches:<\/p>\n<pre class=\"brush:java\">package com.blogspot.sdoulger;\r\n\r\npublic class LoopTest {\r\n    public LoopTest() {\r\n        super();\r\n    }\r\n\r\n    public static void main(String[] args) {\r\n        long start = System.currentTimeMillis();\r\n        spendTime();\r\n        long end = System.currentTimeMillis();\r\n        System.out.println(\"Time spent: \"+ (end-start));\r\n        \r\n        LoopTest loopTest = new LoopTest();\r\n    }\r\n\r\n    private static void spendTime() {\r\n        for (int i =500000000;i&gt;0;i--) {\r\n        }\r\n    }\r\n}\r\n<\/pre>\n<p><u>Note:<\/u> The code is been compiled only once! The classes are the same in both runs!<\/p>\n<p><strong>With -client:<\/strong><br \/>\njava.exe -client -classpath C:\\JDeveloper\\mywork\\Test_java_client-server_switches\\Project1\\classes com.blogspot.sdoulger.LoopTest<br \/>\nTime spent: 766<\/p>\n<p><strong>With -server:<\/strong><br \/>\njava.exe -server -classpath C:\\JDeveloper\\mywork\\Test_java_client-server_switches\\Project1\\classes com.blogspot.sdoulger.LoopTest<br \/>\nTime spent: 0<\/p>\n<p>It seems that the more aggressive optimazation of the server system, remove the loop as it understands that it does not perform any action!<\/p>\n<p>Dig more\/sources:<\/p>\n<ul>\n<li><a href=\"http:\/\/www.oracle.com\/technetwork\/java\/hotspotfaq-138619.html#compiler_types\">What&#8217;s the difference between the -client and -server systems?<\/a><\/li>\n<li><a href=\"http:\/\/java.sun.com\/products\/hotspot\/whitepaper.html#1\">http:\/\/java.sun.com\/products\/hotspot\/whitepaper.html#1<\/a><\/li>\n<li><a href=\"http:\/\/www.velocityreviews.com\/forums\/t130082-difference-between-client-server-classic-and-hotspot-jvms.html\">http:\/\/www.velocityreviews.com\/forums\/t130082-difference-between-client-server-classic-and-hotspot-jvms.html<\/a><\/li>\n<li><a href=\"http:\/\/www.onkarjoshi.com\/blog\/174\/hotspot-jvm-client-server-vm-optimization\/\">http:\/\/www.onkarjoshi.com\/blog\/174\/hotspot-jvm-client-server-vm-optimization\/<\/a><\/li>\n<li><a href=\"http:\/\/stackoverflow.com\/questions\/198577\/real-differences-between-java-server-and-java-client\">http:\/\/stackoverflow.com\/questions\/198577\/real-differences-between-java-server-and-java-client<\/a><\/li>\n<\/ul>\n<p><strong><i>Reference: <\/i><\/strong><a href=\"http:\/\/sdoulger.blogspot.com\/2011\/07\/difference-between-client-and-server.html\">Difference between -client and -server JVM command line options<\/a> from our <a href=\"http:\/\/www.javacodegeeks.com\/p\/jcg.html\">JCG partner<\/a> Spyros Doulgeridis at the <a href=\"http:\/\/sdoulger.blogspot.com\/\">Spyro&#8217;s Log blog<\/a>.<\/p>\n<div style=\"margin: 0px\"><strong><i>Related Articles :<\/i><\/strong><\/div>\n<ul>\n<li><a href=\"http:\/\/www.javacodegeeks.com\/2011\/07\/low-gc-in-java-use-primitives-instead.html\">Low GC in Java: Use primitives instead of wrappers<\/a><\/li>\n<li><a href=\"http:\/\/www.javacodegeeks.com\/2011\/04\/java-generics-quick-tutorial.html\">Java Generics Quick Tutorial<\/a><\/li>\n<li><a href=\"http:\/\/www.javacodegeeks.com\/2011\/05\/how-jvm-handle-locks.html\">How does JVM handle locks<\/a><\/li>\n<li><a href=\"http:\/\/www.javacodegeeks.com\/2011\/05\/avoid-concurrentmodificationexception.html\">How to Avoid ConcurrentModificationException when using an Iterator<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Have you ever wonder what is this -client or -server switch when you run your java app? e.g.: javaw.exe -client com.blogspot.sdoulger.LoopTest that are also displayed in the Help of the java.exe e.g. where options include: -client to select the &#8220;client&#8221; VM -server to select the &#8220;server&#8221; VM What&#8217;s the difference between the -client and -server &hellip;<\/p>\n","protected":false},"author":45,"featured_media":148,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[7],"tags":[207],"class_list":["post-466","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-core-java","tag-jvm"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>JVM options: -client vs -server - Java Code Geeks<\/title>\n<meta name=\"description\" content=\"Have you ever wonder what is this -client or -server switch when you run your java app? e.g.: javaw.exe -client com.blogspot.sdoulger.LoopTest that are\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.javacodegeeks.com\/2011\/07\/jvm-options-client-vs-server.html\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"JVM options: -client vs -server - Java Code Geeks\" \/>\n<meta property=\"og:description\" content=\"Have you ever wonder what is this -client or -server switch when you run your java app? e.g.: javaw.exe -client com.blogspot.sdoulger.LoopTest that are\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.javacodegeeks.com\/2011\/07\/jvm-options-client-vs-server.html\" \/>\n<meta property=\"og:site_name\" content=\"Java Code Geeks\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/javacodegeeks\" \/>\n<meta property=\"article:published_time\" content=\"2011-07-18T08:45:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2012-10-21T19:59:15+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/java-logo.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"150\" \/>\n\t<meta property=\"og:image:height\" content=\"150\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Spyros Doulgeridis\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@javacodegeeks\" \/>\n<meta name=\"twitter:site\" content=\"@javacodegeeks\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Spyros Doulgeridis\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2011\\\/07\\\/jvm-options-client-vs-server.html#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2011\\\/07\\\/jvm-options-client-vs-server.html\"},\"author\":{\"name\":\"Spyros Doulgeridis\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#\\\/schema\\\/person\\\/84e866f123476ce526d2984fa3c7653e\"},\"headline\":\"JVM options: -client vs -server\",\"datePublished\":\"2011-07-18T08:45:00+00:00\",\"dateModified\":\"2012-10-21T19:59:15+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2011\\\/07\\\/jvm-options-client-vs-server.html\"},\"wordCount\":744,\"commentCount\":1,\"publisher\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2011\\\/07\\\/jvm-options-client-vs-server.html#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2012\\\/10\\\/java-logo.jpg\",\"keywords\":[\"JVM\"],\"articleSection\":[\"Core Java\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.javacodegeeks.com\\\/2011\\\/07\\\/jvm-options-client-vs-server.html#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2011\\\/07\\\/jvm-options-client-vs-server.html\",\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2011\\\/07\\\/jvm-options-client-vs-server.html\",\"name\":\"JVM options: -client vs -server - Java Code Geeks\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2011\\\/07\\\/jvm-options-client-vs-server.html#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2011\\\/07\\\/jvm-options-client-vs-server.html#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2012\\\/10\\\/java-logo.jpg\",\"datePublished\":\"2011-07-18T08:45:00+00:00\",\"dateModified\":\"2012-10-21T19:59:15+00:00\",\"description\":\"Have you ever wonder what is this -client or -server switch when you run your java app? e.g.: javaw.exe -client com.blogspot.sdoulger.LoopTest that are\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2011\\\/07\\\/jvm-options-client-vs-server.html#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.javacodegeeks.com\\\/2011\\\/07\\\/jvm-options-client-vs-server.html\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2011\\\/07\\\/jvm-options-client-vs-server.html#primaryimage\",\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2012\\\/10\\\/java-logo.jpg\",\"contentUrl\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2012\\\/10\\\/java-logo.jpg\",\"width\":150,\"height\":150},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2011\\\/07\\\/jvm-options-client-vs-server.html#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.javacodegeeks.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Java\",\"item\":\"https:\\\/\\\/www.javacodegeeks.com\\\/category\\\/java\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Core Java\",\"item\":\"https:\\\/\\\/www.javacodegeeks.com\\\/category\\\/java\\\/core-java\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"JVM options: -client vs -server\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#website\",\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/\",\"name\":\"Java Code Geeks\",\"description\":\"Java Developers Resource Center\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#organization\"},\"alternateName\":\"JCG\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.javacodegeeks.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#organization\",\"name\":\"Exelixis Media P.C.\",\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2022\\\/06\\\/exelixis-logo.png\",\"contentUrl\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2022\\\/06\\\/exelixis-logo.png\",\"width\":864,\"height\":246,\"caption\":\"Exelixis Media P.C.\"},\"image\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/javacodegeeks\",\"https:\\\/\\\/x.com\\\/javacodegeeks\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#\\\/schema\\\/person\\\/84e866f123476ce526d2984fa3c7653e\",\"name\":\"Spyros Doulgeridis\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/be0e3a1493fd5db4cfe9e9322f104abc30eb44ba8fd17e4637d7d89165d6869d?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/be0e3a1493fd5db4cfe9e9322f104abc30eb44ba8fd17e4637d7d89165d6869d?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/be0e3a1493fd5db4cfe9e9322f104abc30eb44ba8fd17e4637d7d89165d6869d?s=96&d=mm&r=g\",\"caption\":\"Spyros Doulgeridis\"},\"sameAs\":[\"http:\\\/\\\/sdoulger.blogspot.com\\\/\"],\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/author\\\/Spyros-Doulgeridis\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"JVM options: -client vs -server - Java Code Geeks","description":"Have you ever wonder what is this -client or -server switch when you run your java app? e.g.: javaw.exe -client com.blogspot.sdoulger.LoopTest that are","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.javacodegeeks.com\/2011\/07\/jvm-options-client-vs-server.html","og_locale":"en_US","og_type":"article","og_title":"JVM options: -client vs -server - Java Code Geeks","og_description":"Have you ever wonder what is this -client or -server switch when you run your java app? e.g.: javaw.exe -client com.blogspot.sdoulger.LoopTest that are","og_url":"https:\/\/www.javacodegeeks.com\/2011\/07\/jvm-options-client-vs-server.html","og_site_name":"Java Code Geeks","article_publisher":"https:\/\/www.facebook.com\/javacodegeeks","article_published_time":"2011-07-18T08:45:00+00:00","article_modified_time":"2012-10-21T19:59:15+00:00","og_image":[{"width":150,"height":150,"url":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/java-logo.jpg","type":"image\/jpeg"}],"author":"Spyros Doulgeridis","twitter_card":"summary_large_image","twitter_creator":"@javacodegeeks","twitter_site":"@javacodegeeks","twitter_misc":{"Written by":"Spyros Doulgeridis","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.javacodegeeks.com\/2011\/07\/jvm-options-client-vs-server.html#article","isPartOf":{"@id":"https:\/\/www.javacodegeeks.com\/2011\/07\/jvm-options-client-vs-server.html"},"author":{"name":"Spyros Doulgeridis","@id":"https:\/\/www.javacodegeeks.com\/#\/schema\/person\/84e866f123476ce526d2984fa3c7653e"},"headline":"JVM options: -client vs -server","datePublished":"2011-07-18T08:45:00+00:00","dateModified":"2012-10-21T19:59:15+00:00","mainEntityOfPage":{"@id":"https:\/\/www.javacodegeeks.com\/2011\/07\/jvm-options-client-vs-server.html"},"wordCount":744,"commentCount":1,"publisher":{"@id":"https:\/\/www.javacodegeeks.com\/#organization"},"image":{"@id":"https:\/\/www.javacodegeeks.com\/2011\/07\/jvm-options-client-vs-server.html#primaryimage"},"thumbnailUrl":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/java-logo.jpg","keywords":["JVM"],"articleSection":["Core Java"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.javacodegeeks.com\/2011\/07\/jvm-options-client-vs-server.html#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.javacodegeeks.com\/2011\/07\/jvm-options-client-vs-server.html","url":"https:\/\/www.javacodegeeks.com\/2011\/07\/jvm-options-client-vs-server.html","name":"JVM options: -client vs -server - Java Code Geeks","isPartOf":{"@id":"https:\/\/www.javacodegeeks.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.javacodegeeks.com\/2011\/07\/jvm-options-client-vs-server.html#primaryimage"},"image":{"@id":"https:\/\/www.javacodegeeks.com\/2011\/07\/jvm-options-client-vs-server.html#primaryimage"},"thumbnailUrl":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/java-logo.jpg","datePublished":"2011-07-18T08:45:00+00:00","dateModified":"2012-10-21T19:59:15+00:00","description":"Have you ever wonder what is this -client or -server switch when you run your java app? e.g.: javaw.exe -client com.blogspot.sdoulger.LoopTest that are","breadcrumb":{"@id":"https:\/\/www.javacodegeeks.com\/2011\/07\/jvm-options-client-vs-server.html#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.javacodegeeks.com\/2011\/07\/jvm-options-client-vs-server.html"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.javacodegeeks.com\/2011\/07\/jvm-options-client-vs-server.html#primaryimage","url":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/java-logo.jpg","contentUrl":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/java-logo.jpg","width":150,"height":150},{"@type":"BreadcrumbList","@id":"https:\/\/www.javacodegeeks.com\/2011\/07\/jvm-options-client-vs-server.html#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.javacodegeeks.com\/"},{"@type":"ListItem","position":2,"name":"Java","item":"https:\/\/www.javacodegeeks.com\/category\/java"},{"@type":"ListItem","position":3,"name":"Core Java","item":"https:\/\/www.javacodegeeks.com\/category\/java\/core-java"},{"@type":"ListItem","position":4,"name":"JVM options: -client vs -server"}]},{"@type":"WebSite","@id":"https:\/\/www.javacodegeeks.com\/#website","url":"https:\/\/www.javacodegeeks.com\/","name":"Java Code Geeks","description":"Java Developers Resource Center","publisher":{"@id":"https:\/\/www.javacodegeeks.com\/#organization"},"alternateName":"JCG","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.javacodegeeks.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.javacodegeeks.com\/#organization","name":"Exelixis Media P.C.","url":"https:\/\/www.javacodegeeks.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.javacodegeeks.com\/#\/schema\/logo\/image\/","url":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png","contentUrl":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png","width":864,"height":246,"caption":"Exelixis Media P.C."},"image":{"@id":"https:\/\/www.javacodegeeks.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/javacodegeeks","https:\/\/x.com\/javacodegeeks"]},{"@type":"Person","@id":"https:\/\/www.javacodegeeks.com\/#\/schema\/person\/84e866f123476ce526d2984fa3c7653e","name":"Spyros Doulgeridis","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/be0e3a1493fd5db4cfe9e9322f104abc30eb44ba8fd17e4637d7d89165d6869d?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/be0e3a1493fd5db4cfe9e9322f104abc30eb44ba8fd17e4637d7d89165d6869d?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/be0e3a1493fd5db4cfe9e9322f104abc30eb44ba8fd17e4637d7d89165d6869d?s=96&d=mm&r=g","caption":"Spyros Doulgeridis"},"sameAs":["http:\/\/sdoulger.blogspot.com\/"],"url":"https:\/\/www.javacodegeeks.com\/author\/Spyros-Doulgeridis"}]}},"_links":{"self":[{"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/posts\/466","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/users\/45"}],"replies":[{"embeddable":true,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/comments?post=466"}],"version-history":[{"count":0,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/posts\/466\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/media\/148"}],"wp:attachment":[{"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/media?parent=466"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/categories?post=466"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/tags?post=466"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}