{"id":24721,"date":"2015-09-11T12:46:16","date_gmt":"2015-09-11T10:46:16","guid":{"rendered":"https:\/\/mamchenkov.net\/wordpress\/?p=24721"},"modified":"2015-09-11T12:50:49","modified_gmt":"2015-09-11T10:50:49","slug":"latency-numbers-every-programmer-should-know","status":"publish","type":"post","link":"https:\/\/mamchenkov.net\/wordpress\/2015\/09\/11\/latency-numbers-every-programmer-should-know\/","title":{"rendered":"Latency Numbers Every Programmer Should Know"},"content":{"rendered":"<!-- google_ad_section_start -->\n<p><a href=\"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2015\/09\/latency.png?ssl=1\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" data-attachment-id=\"24722\" data-permalink=\"https:\/\/mamchenkov.net\/wordpress\/2015\/09\/11\/latency-numbers-every-programmer-should-know\/latency\/\" data-orig-file=\"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2015\/09\/latency.png?fit=1024%2C512&amp;ssl=1\" data-orig-size=\"1024,512\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"latency\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2015\/09\/latency.png?fit=660%2C330&amp;ssl=1\" class=\"aligncenter size-medium wp-image-24722\" src=\"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2015\/09\/latency-500x250.png?resize=500%2C250&#038;ssl=1\" alt=\"latency\" width=\"500\" height=\"250\" srcset=\"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2015\/09\/latency.png?resize=500%2C250&amp;ssl=1 500w, https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2015\/09\/latency.png?w=1024&amp;ssl=1 1024w\" sizes=\"auto, (max-width: 500px) 100vw, 500px\" \/><\/a><\/p>\n<p>I&#8217;m saving this here for current and future generations of programmers:<\/p>\n<pre class=\"brush: plain; light: true; title: ; notranslate\" title=\"\">\r\nLatency Comparison Numbers\r\n--------------------------\r\nL1 cache reference                            0.5 ns\r\nBranch mispredict                             5   ns\r\nL2 cache reference                            7   ns             14x L1 cache\r\nMutex lock\/unlock                            25   ns\r\nMain memory reference                       100   ns             20x L2 cache, 200x L1 cache\r\nCompress 1K bytes with Zippy              3,000   ns\r\nSend 1K bytes over 1 Gbps network        10,000   ns    0.01 ms\r\nRead 4K randomly from SSD*              150,000   ns    0.15 ms\r\nRead 1 MB sequentially from memory      250,000   ns    0.25 ms\r\nRound trip within same datacenter       500,000   ns    0.5  ms\r\nRead 1 MB sequentially from SSD*      1,000,000   ns    1    ms  4X memory\r\nDisk seek                            10,000,000   ns   10    ms  20x datacenter roundtrip\r\nRead 1 MB sequentially from disk     20,000,000   ns   20    ms  80x memory, 20X SSD\r\nSend packet CA-&gt;Netherlands-&gt;CA     150,000,000   ns  150    ms\r\n\r\nNotes\r\n-----\r\n1 ns = 10-9 seconds\r\n1 ms = 10-3 seconds\r\n* Assuming ~1GB\/sec SSD\r\n\r\nCredit\r\n------\r\nBy Jeff Dean:               http:\/\/research.google.com\/people\/jeff\/\r\nOriginally by Peter Norvig: http:\/\/norvig.com\/21-days.html#answers\r\n\r\nContributions\r\n-------------\r\nSome updates from:                      https:\/\/gist.github.com\/2843375\r\nGreat 'humanized' comparison version:   https:\/\/gist.github.com\/2843375\r\nVisual comparison chart:                http:\/\/i.imgur.com\/k0t1e.png\r\nNice animated presentation of the data: http:\/\/prezi.com\/pdkvgys-r0y6\/latency-numbers-for-programmers-web-development\/\r\n<\/pre>\n<p>This is a copy-paste of <a href=\"https:\/\/gist.github.com\/jboner\/2841832\">this gist<\/a>, referenced from <a href=\"http:\/\/jvns.ca\/blog\/2015\/09\/10\/a-millisecond-isnt-fast-and-how-we-fixed-it\/\">this blog post<\/a>. Read and share both, for the better world.<\/p>\n<!-- google_ad_section_end -->\n","protected":false},"excerpt":{"rendered":"<!-- google_ad_section_start -->\n<p>I&#8217;m saving this here for current and future generations of programmers: Latency Comparison Numbers &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211; L1 cache reference 0.5 ns Branch mispredict 5 ns L2 cache reference 7 ns 14x L1 cache Mutex lock\/unlock 25 ns Main memory reference 100 ns 20x L2 cache, 200x L1 cache Compress 1K bytes with Zippy 3,000 ns Send &hellip; <a href=\"https:\/\/mamchenkov.net\/wordpress\/2015\/09\/11\/latency-numbers-every-programmer-should-know\/\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">Latency Numbers Every Programmer Should Know<\/span><\/a><\/p>\n<!-- google_ad_section_end -->\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"Latency Numbers Every Programmer Should Know #WebDev #programming #performance","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"jetpack_post_was_ever_published":false,"_links_to":"","_links_to_target":""},"categories":[1,18,62],"tags":[246,1057,245,1330],"keyring_services":[],"class_list":["post-24721","post","type-post","status-publish","format-standard","hentry","category-general","category-programming","category-technology","tag-optimization","tag-performance","tag-profiling","tag-web-development"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 4.9.8 - aioseo.com -->\n\t<meta name=\"description\" content=\"I&#039;m saving this here for current and future generations of programmers: [code light=&quot;true&quot;] Latency Comparison Numbers -------------------------- L1 cache reference 0.5 ns Branch mispredict 5 ns L2 cache reference 7 ns 14x L1 cache Mutex lock\/unlock 25 ns Main memory reference 100 ns 20x L2 cache, 200x L1 cache Compress 1K bytes with Zippy 3,000\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Leonid Mamchenkov\"\/>\n\t<meta name=\"google-site-verification\" content=\"VHvdD0_usx1_4DzKy_QCVcICVgX2EgA2ybELT-wl7kQ\" \/>\n\t<link rel=\"canonical\" href=\"https:\/\/mamchenkov.net\/wordpress\/2015\/09\/11\/latency-numbers-every-programmer-should-know\/\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 4.9.8\" \/>\n\t\t<meta property=\"og:locale\" content=\"en_US\" \/>\n\t\t<meta property=\"og:site_name\" content=\"Leonid Mamchenkov - Life, universe, and everything else\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"Latency Numbers Every Programmer Should Know - Leonid Mamchenkov\" \/>\n\t\t<meta property=\"og:description\" content=\"I&#039;m saving this here for current and future generations of programmers: [code light=&quot;true&quot;] Latency Comparison Numbers -------------------------- L1 cache reference 0.5 ns Branch mispredict 5 ns L2 cache reference 7 ns 14x L1 cache Mutex lock\/unlock 25 ns Main memory reference 100 ns 20x L2 cache, 200x L1 cache Compress 1K bytes with Zippy 3,000\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/mamchenkov.net\/wordpress\/2015\/09\/11\/latency-numbers-every-programmer-should-know\/\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2026\/03\/leonid-sailing-beer.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2026\/03\/leonid-sailing-beer.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"1024\" \/>\n\t\t<meta property=\"og:image:height\" content=\"1024\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2015-09-11T10:46:16+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2015-09-11T10:50:49+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/MamchenkovBlog\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n\t\t<meta name=\"twitter:site\" content=\"@mamchenkov\" \/>\n\t\t<meta name=\"twitter:title\" content=\"Latency Numbers Every Programmer Should Know - Leonid Mamchenkov\" \/>\n\t\t<meta name=\"twitter:description\" content=\"I&#039;m saving this here for current and future generations of programmers: [code light=&quot;true&quot;] Latency Comparison Numbers -------------------------- L1 cache reference 0.5 ns Branch mispredict 5 ns L2 cache reference 7 ns 14x L1 cache Mutex lock\/unlock 25 ns Main memory reference 100 ns 20x L2 cache, 200x L1 cache Compress 1K bytes with Zippy 3,000\" \/>\n\t\t<meta name=\"twitter:creator\" content=\"@mamchenkov\" \/>\n\t\t<meta name=\"twitter:image\" content=\"https:\/\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2026\/03\/leonid-sailing-beer.jpg\" \/>\n\t\t<script type=\"application\/ld+json\" class=\"aioseo-schema\">\n\t\t\t{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"BlogPosting\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2015\\\/09\\\/11\\\/latency-numbers-every-programmer-should-know\\\/#blogposting\",\"name\":\"Latency Numbers Every Programmer Should Know - Leonid Mamchenkov\",\"headline\":\"Latency Numbers Every Programmer Should Know\",\"author\":{\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/author\\\/leonid\\\/#author\"},\"publisher\":{\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/#person\"},\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/wp-content\\\/uploads\\\/2015\\\/09\\\/latency-500x250.png\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2015\\\/09\\\/11\\\/latency-numbers-every-programmer-should-know\\\/#articleImage\"},\"datePublished\":\"2015-09-11T12:46:16+02:00\",\"dateModified\":\"2015-09-11T12:50:49+02:00\",\"inLanguage\":\"en-US\",\"commentCount\":5,\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2015\\\/09\\\/11\\\/latency-numbers-every-programmer-should-know\\\/#webpage\"},\"isPartOf\":{\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2015\\\/09\\\/11\\\/latency-numbers-every-programmer-should-know\\\/#webpage\"},\"articleSection\":\"All, Programming, Technology, optimization, performance, profiling, web development\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2015\\\/09\\\/11\\\/latency-numbers-every-programmer-should-know\\\/#breadcrumblist\",\"itemListElement\":[{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress#listItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/category\\\/technology\\\/#listItem\",\"name\":\"Technology\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/category\\\/technology\\\/#listItem\",\"position\":2,\"name\":\"Technology\",\"item\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/category\\\/technology\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/category\\\/technology\\\/programming\\\/#listItem\",\"name\":\"Programming\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress#listItem\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/category\\\/technology\\\/programming\\\/#listItem\",\"position\":3,\"name\":\"Programming\",\"item\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/category\\\/technology\\\/programming\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2015\\\/09\\\/11\\\/latency-numbers-every-programmer-should-know\\\/#listItem\",\"name\":\"Latency Numbers Every Programmer Should Know\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/category\\\/technology\\\/#listItem\",\"name\":\"Technology\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2015\\\/09\\\/11\\\/latency-numbers-every-programmer-should-know\\\/#listItem\",\"position\":4,\"name\":\"Latency Numbers Every Programmer Should Know\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/category\\\/technology\\\/programming\\\/#listItem\",\"name\":\"Programming\"}}]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/#person\",\"name\":\"Leonid Mamchenkov\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2015\\\/09\\\/11\\\/latency-numbers-every-programmer-should-know\\\/#personImage\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/3cf6df002a284d78fb6e9d8222ca4d102e0832035ed6bc8447008bd234e131a4?s=96&d=identicon&r=g\",\"width\":96,\"height\":96,\"caption\":\"Leonid Mamchenkov\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/author\\\/leonid\\\/#author\",\"url\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/author\\\/leonid\\\/\",\"name\":\"Leonid Mamchenkov\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2015\\\/09\\\/11\\\/latency-numbers-every-programmer-should-know\\\/#authorImage\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/3cf6df002a284d78fb6e9d8222ca4d102e0832035ed6bc8447008bd234e131a4?s=96&d=identicon&r=g\",\"width\":96,\"height\":96,\"caption\":\"Leonid Mamchenkov\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2015\\\/09\\\/11\\\/latency-numbers-every-programmer-should-know\\\/#webpage\",\"url\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2015\\\/09\\\/11\\\/latency-numbers-every-programmer-should-know\\\/\",\"name\":\"Latency Numbers Every Programmer Should Know - Leonid Mamchenkov\",\"description\":\"I'm saving this here for current and future generations of programmers: [code light=\\\"true\\\"] Latency Comparison Numbers -------------------------- L1 cache reference 0.5 ns Branch mispredict 5 ns L2 cache reference 7 ns 14x L1 cache Mutex lock\\\/unlock 25 ns Main memory reference 100 ns 20x L2 cache, 200x L1 cache Compress 1K bytes with Zippy 3,000\",\"inLanguage\":\"en-US\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2015\\\/09\\\/11\\\/latency-numbers-every-programmer-should-know\\\/#breadcrumblist\"},\"author\":{\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/author\\\/leonid\\\/#author\"},\"creator\":{\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/author\\\/leonid\\\/#author\"},\"datePublished\":\"2015-09-11T12:46:16+02:00\",\"dateModified\":\"2015-09-11T12:50:49+02:00\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/#website\",\"url\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/\",\"name\":\"Blog of Leonid Mamchenkov\",\"description\":\"Life, universe, and everything else\",\"inLanguage\":\"en-US\",\"publisher\":{\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/#person\"}}]}\n\t\t<\/script>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"Latency Numbers Every Programmer Should Know - Leonid Mamchenkov","description":"I'm saving this here for current and future generations of programmers: [code light=\"true\"] Latency Comparison Numbers -------------------------- L1 cache reference 0.5 ns Branch mispredict 5 ns L2 cache reference 7 ns 14x L1 cache Mutex lock\/unlock 25 ns Main memory reference 100 ns 20x L2 cache, 200x L1 cache Compress 1K bytes with Zippy 3,000","canonical_url":"https:\/\/mamchenkov.net\/wordpress\/2015\/09\/11\/latency-numbers-every-programmer-should-know\/","robots":"max-image-preview:large","keywords":"","webmasterTools":{"google-site-verification":"VHvdD0_usx1_4DzKy_QCVcICVgX2EgA2ybELT-wl7kQ","miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"BlogPosting","@id":"https:\/\/mamchenkov.net\/wordpress\/2015\/09\/11\/latency-numbers-every-programmer-should-know\/#blogposting","name":"Latency Numbers Every Programmer Should Know - Leonid Mamchenkov","headline":"Latency Numbers Every Programmer Should Know","author":{"@id":"https:\/\/mamchenkov.net\/wordpress\/author\/leonid\/#author"},"publisher":{"@id":"https:\/\/mamchenkov.net\/wordpress\/#person"},"image":{"@type":"ImageObject","url":"https:\/\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2015\/09\/latency-500x250.png","@id":"https:\/\/mamchenkov.net\/wordpress\/2015\/09\/11\/latency-numbers-every-programmer-should-know\/#articleImage"},"datePublished":"2015-09-11T12:46:16+02:00","dateModified":"2015-09-11T12:50:49+02:00","inLanguage":"en-US","commentCount":5,"mainEntityOfPage":{"@id":"https:\/\/mamchenkov.net\/wordpress\/2015\/09\/11\/latency-numbers-every-programmer-should-know\/#webpage"},"isPartOf":{"@id":"https:\/\/mamchenkov.net\/wordpress\/2015\/09\/11\/latency-numbers-every-programmer-should-know\/#webpage"},"articleSection":"All, Programming, Technology, optimization, performance, profiling, web development"},{"@type":"BreadcrumbList","@id":"https:\/\/mamchenkov.net\/wordpress\/2015\/09\/11\/latency-numbers-every-programmer-should-know\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/mamchenkov.net\/wordpress#listItem","position":1,"name":"Home","item":"https:\/\/mamchenkov.net\/wordpress","nextItem":{"@type":"ListItem","@id":"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/#listItem","name":"Technology"}},{"@type":"ListItem","@id":"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/#listItem","position":2,"name":"Technology","item":"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/","nextItem":{"@type":"ListItem","@id":"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/programming\/#listItem","name":"Programming"},"previousItem":{"@type":"ListItem","@id":"https:\/\/mamchenkov.net\/wordpress#listItem","name":"Home"}},{"@type":"ListItem","@id":"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/programming\/#listItem","position":3,"name":"Programming","item":"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/programming\/","nextItem":{"@type":"ListItem","@id":"https:\/\/mamchenkov.net\/wordpress\/2015\/09\/11\/latency-numbers-every-programmer-should-know\/#listItem","name":"Latency Numbers Every Programmer Should Know"},"previousItem":{"@type":"ListItem","@id":"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/#listItem","name":"Technology"}},{"@type":"ListItem","@id":"https:\/\/mamchenkov.net\/wordpress\/2015\/09\/11\/latency-numbers-every-programmer-should-know\/#listItem","position":4,"name":"Latency Numbers Every Programmer Should Know","previousItem":{"@type":"ListItem","@id":"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/programming\/#listItem","name":"Programming"}}]},{"@type":"Person","@id":"https:\/\/mamchenkov.net\/wordpress\/#person","name":"Leonid Mamchenkov","image":{"@type":"ImageObject","@id":"https:\/\/mamchenkov.net\/wordpress\/2015\/09\/11\/latency-numbers-every-programmer-should-know\/#personImage","url":"https:\/\/secure.gravatar.com\/avatar\/3cf6df002a284d78fb6e9d8222ca4d102e0832035ed6bc8447008bd234e131a4?s=96&d=identicon&r=g","width":96,"height":96,"caption":"Leonid Mamchenkov"}},{"@type":"Person","@id":"https:\/\/mamchenkov.net\/wordpress\/author\/leonid\/#author","url":"https:\/\/mamchenkov.net\/wordpress\/author\/leonid\/","name":"Leonid Mamchenkov","image":{"@type":"ImageObject","@id":"https:\/\/mamchenkov.net\/wordpress\/2015\/09\/11\/latency-numbers-every-programmer-should-know\/#authorImage","url":"https:\/\/secure.gravatar.com\/avatar\/3cf6df002a284d78fb6e9d8222ca4d102e0832035ed6bc8447008bd234e131a4?s=96&d=identicon&r=g","width":96,"height":96,"caption":"Leonid Mamchenkov"}},{"@type":"WebPage","@id":"https:\/\/mamchenkov.net\/wordpress\/2015\/09\/11\/latency-numbers-every-programmer-should-know\/#webpage","url":"https:\/\/mamchenkov.net\/wordpress\/2015\/09\/11\/latency-numbers-every-programmer-should-know\/","name":"Latency Numbers Every Programmer Should Know - Leonid Mamchenkov","description":"I'm saving this here for current and future generations of programmers: [code light=\"true\"] Latency Comparison Numbers -------------------------- L1 cache reference 0.5 ns Branch mispredict 5 ns L2 cache reference 7 ns 14x L1 cache Mutex lock\/unlock 25 ns Main memory reference 100 ns 20x L2 cache, 200x L1 cache Compress 1K bytes with Zippy 3,000","inLanguage":"en-US","isPartOf":{"@id":"https:\/\/mamchenkov.net\/wordpress\/#website"},"breadcrumb":{"@id":"https:\/\/mamchenkov.net\/wordpress\/2015\/09\/11\/latency-numbers-every-programmer-should-know\/#breadcrumblist"},"author":{"@id":"https:\/\/mamchenkov.net\/wordpress\/author\/leonid\/#author"},"creator":{"@id":"https:\/\/mamchenkov.net\/wordpress\/author\/leonid\/#author"},"datePublished":"2015-09-11T12:46:16+02:00","dateModified":"2015-09-11T12:50:49+02:00"},{"@type":"WebSite","@id":"https:\/\/mamchenkov.net\/wordpress\/#website","url":"https:\/\/mamchenkov.net\/wordpress\/","name":"Blog of Leonid Mamchenkov","description":"Life, universe, and everything else","inLanguage":"en-US","publisher":{"@id":"https:\/\/mamchenkov.net\/wordpress\/#person"}}]},"og:locale":"en_US","og:site_name":"Leonid Mamchenkov - Life, universe, and everything else","og:type":"article","og:title":"Latency Numbers Every Programmer Should Know - Leonid Mamchenkov","og:description":"I'm saving this here for current and future generations of programmers: [code light=&quot;true&quot;] Latency Comparison Numbers -------------------------- L1 cache reference 0.5 ns Branch mispredict 5 ns L2 cache reference 7 ns 14x L1 cache Mutex lock\/unlock 25 ns Main memory reference 100 ns 20x L2 cache, 200x L1 cache Compress 1K bytes with Zippy 3,000","og:url":"https:\/\/mamchenkov.net\/wordpress\/2015\/09\/11\/latency-numbers-every-programmer-should-know\/","og:image":"https:\/\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2026\/03\/leonid-sailing-beer.jpg","og:image:secure_url":"https:\/\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2026\/03\/leonid-sailing-beer.jpg","og:image:width":1024,"og:image:height":1024,"article:published_time":"2015-09-11T10:46:16+00:00","article:modified_time":"2015-09-11T10:50:49+00:00","article:publisher":"https:\/\/www.facebook.com\/MamchenkovBlog","twitter:card":"summary_large_image","twitter:site":"@mamchenkov","twitter:title":"Latency Numbers Every Programmer Should Know - Leonid Mamchenkov","twitter:description":"I'm saving this here for current and future generations of programmers: [code light=&quot;true&quot;] Latency Comparison Numbers -------------------------- L1 cache reference 0.5 ns Branch mispredict 5 ns L2 cache reference 7 ns 14x L1 cache Mutex lock\/unlock 25 ns Main memory reference 100 ns 20x L2 cache, 200x L1 cache Compress 1K bytes with Zippy 3,000","twitter:creator":"@mamchenkov","twitter:image":"https:\/\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2026\/03\/leonid-sailing-beer.jpg"},"aioseo_meta_data":{"post_id":"24721","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"BlogPosting","isEnabled":true},"graphs":[]},"schema_type":"default","schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"breadcrumb_settings":null,"limit_modified_date":false,"ai":null,"created":"2023-07-19 17:41:23","updated":"2026-01-15 11:41:46","seo_analyzer_scan_date":null},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/mamchenkov.net\/wordpress\" title=\"Home\">Home<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/\" title=\"Technology\">Technology<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/programming\/\" title=\"Programming\">Programming<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\tLatency Numbers Every Programmer Should Know\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"https:\/\/mamchenkov.net\/wordpress"},{"label":"Technology","link":"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/"},{"label":"Programming","link":"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/programming\/"},{"label":"Latency Numbers Every Programmer Should Know","link":"https:\/\/mamchenkov.net\/wordpress\/2015\/09\/11\/latency-numbers-every-programmer-should-know\/"}],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack-related-posts":[{"id":25950,"url":"https:\/\/mamchenkov.net\/wordpress\/2016\/03\/17\/latency-numbers-by-year\/","url_meta":{"origin":24721,"position":0},"title":"Latency numbers by year","author":"Leonid Mamchenkov","date":"March 17, 2016","format":false,"excerpt":"Last year I came across a nice chart of latency numbers every programmer should know. \u00a0Today, I saw this page, which shows you the same latency numbers, but also provides a timeline from 1990 to 2020. For some operations, latency is constant, because it's based on things of nature -\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":17302,"url":"https:\/\/mamchenkov.net\/wordpress\/2012\/12\/11\/spl-standard-php-library\/","url_meta":{"origin":24721,"position":1},"title":"SPL &#8211; Standard PHP Library","author":"Leonid Mamchenkov","date":"December 11, 2012","format":false,"excerpt":"I've been looking at SPL for some time now. \u00a0On one hand, it's a new addition to PHP core (since version 5.3), so I know how to work without it. \u00a0On the other hand, it provides standardized solutions for common problems, and that should be enough reason to start using\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":26084,"url":"https:\/\/mamchenkov.net\/wordpress\/2016\/05\/03\/dns-whois-record-lookup-tool\/","url_meta":{"origin":24721,"position":2},"title":"DNS \/ Whois Record Lookup Tool","author":"Leonid Mamchenkov","date":"May 3, 2016","format":false,"excerpt":"Here is yet another DNS \/ WHOIS record lookup tool. \u00a0It's quick and simple - just type the website's URL and submit a form. \u00a0You'll get a result with all the DNS records and WHOIS information, all on one page. The term DNS stands for Domain Name System, the largest\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":26287,"url":"https:\/\/mamchenkov.net\/wordpress\/2016\/07\/25\/21st-century-is-finally-here-with-primetel-fibernet\/","url_meta":{"origin":24721,"position":3},"title":"21st century is finally here with PrimeTel Fibernet","author":"Leonid Mamchenkov","date":"July 25, 2016","format":false,"excerpt":"The apartment building where I live in for the last few years had some cabling issues. \u00a0That prevented me from joining the rest of the world in the 21st century, when it comes to home Internet connectivity. \u00a0Here's what I've been on until today: Today, I've got my connection updated.\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"PrimeTel (before)","src":"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2016\/07\/primetel-before.png?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]},{"id":28048,"url":"https:\/\/mamchenkov.net\/wordpress\/2017\/10\/04\/optimizing-web-servers-for-high-throughput-and-low-latency\/","url_meta":{"origin":24721,"position":4},"title":"Optimizing web servers for high throughput and low latency","author":"Leonid Mamchenkov","date":"October 4, 2017","format":false,"excerpt":"Dropbox Tech Blog has this in-depth article on \"Optimizing web servers for high throughput and low latency\".\u00a0 It goes over everything from hardware and low level operating system stuff all the way up to the application level. Great job, guys!","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2017\/10\/flame-graph-500x243.png?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]},{"id":48,"url":"https:\/\/mamchenkov.net\/wordpress\/2002\/05\/15\/hacking-red-hat-cds\/","url_meta":{"origin":24721,"position":5},"title":"Hacking Red Hat CDs","author":"Leonid Mamchenkov","date":"May 15, 2002","format":false,"excerpt":"Still playing with Red Hat Linux 7.3. By now I have managed to fit it on the single CD (650 MB). Anaconda (installation program) got me pulling hair out of my head though. First, I have no prior experience with Python. Second, after I checked it out, I think I\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"jetpack_sharing_enabled":true,"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/posts\/24721","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/comments?post=24721"}],"version-history":[{"count":0,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/posts\/24721\/revisions"}],"wp:attachment":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/media?parent=24721"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/categories?post=24721"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/tags?post=24721"},{"taxonomy":"keyring_services","embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/keyring_services?post=24721"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}