{"id":101,"date":"2008-07-29T16:57:33","date_gmt":"2008-07-29T20:57:33","guid":{"rendered":"http:\/\/jianmingli.com\/wp\/?p=101"},"modified":"2008-07-30T10:42:17","modified_gmt":"2008-07-30T14:42:17","slug":"web-service-performance-tips","status":"publish","type":"post","link":"https:\/\/jianmingli.com\/wp\/?p=101","title":{"rendered":"Web Service Performance Tips"},"content":{"rendered":"<ul>\n<li>Prefer coarse grained operations<\/li>\n<li>Prefer asynchronous messaging<\/li>\n<li>Use caching when feasible\n<ul>\n<li>Cache data on client side whenever possible while still ensuring up-to-dateness with server<\/li>\n<li>Cache WSDL<\/li>\n<li>Cache schemas<\/li>\n<li>Cache session state for transactional ws<\/li>\n<\/ul>\n<\/li>\n<li>Disable non essential XML parser functionalities (e.g. wellformness) in production<\/li>\n<li>Use simple SOAP types (type conversions are costly)<\/li>\n<li>Use load balancing (hardware or software)<\/li>\n<li>Free resources when finished<\/li>\n<li>Determine bottlenecks before fixing any particular part\n<ul>\n<li>Collect performance metrics periodically<\/li>\n<li>Use stress test tools (e.g. PushToTest, Test Director)<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Prefer coarse grained operations Prefer asynchronous messaging Use caching when feasible Cache data on client side whenever possible while still ensuring up-to-dateness with server Cache WSDL Cache schemas Cache session state for transactional ws Disable non essential XML parser functionalities &hellip; <a href=\"https:\/\/jianmingli.com\/wp\/?p=101\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_exactmetrics_skip_tracking":false,"_exactmetrics_sitenote_active":false,"_exactmetrics_sitenote_note":"","_exactmetrics_sitenote_category":0,"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[22],"tags":[],"class_list":["post-101","post","type-post","status-publish","format-standard","hentry","category-soa"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p8cRUO-1D","_links":{"self":[{"href":"https:\/\/jianmingli.com\/wp\/index.php?rest_route=\/wp\/v2\/posts\/101","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jianmingli.com\/wp\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jianmingli.com\/wp\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jianmingli.com\/wp\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/jianmingli.com\/wp\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=101"}],"version-history":[{"count":0,"href":"https:\/\/jianmingli.com\/wp\/index.php?rest_route=\/wp\/v2\/posts\/101\/revisions"}],"wp:attachment":[{"href":"https:\/\/jianmingli.com\/wp\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=101"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jianmingli.com\/wp\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=101"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jianmingli.com\/wp\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=101"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}