{"id":20835,"date":"2023-02-20T22:57:50","date_gmt":"2023-02-20T21:57:50","guid":{"rendered":"https:\/\/daniel.haxx.se\/blog\/?p=20835"},"modified":"2023-02-20T22:57:50","modified_gmt":"2023-02-20T21:57:50","slug":"my-2023-dev-machine","status":"publish","type":"post","link":"https:\/\/daniel.haxx.se\/blog\/2023\/02\/20\/my-2023-dev-machine\/","title":{"rendered":"My 2023 dev machine"},"content":{"rendered":"\n<p>My desktop computer is my trusted work machine that I do the majority of all my (curl) development on. When the <a href=\"https:\/\/daniel.haxx.se\/computers.html\">15th computer I&#8217;ve owned<\/a> through the times was <a href=\"https:\/\/daniel.haxx.se\/blog\/2012\/11\/20\/say-hello-to-moo\/\" data-type=\"post\" data-id=\"4488\">ten years old<\/a> the time was ripe to bump things up a notch.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Requirements<\/h2>\n\n\n\n<p>I don&#8217;t do games (as in: never) and I don&#8217;t do any other 3D stuff. I just need my two 4K monitors to display my desktops and browser windows fine.<\/p>\n\n\n\n<p>In my ordinary days I compile C code and I run tests. CPU and memory will be used to build and test faster and to be able to run separate VM runtimes in parallel without problems. I rarely even build very large or complicated software projects. (The days of <a href=\"https:\/\/daniel.haxx.se\/blog\/2018\/11\/18\/im-leaving-mozilla\/\" data-type=\"post\" data-id=\"11748\">building Firefox are long gone<\/a>&#8230;)<\/p>\n\n\n\n<p>Ideally, this upgrade will last for a long time again so I&#8217;ve tried to push it a little to increase those chances.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">New machine<\/h2>\n\n\n\n<p>This new baby is (of course) built from components and I&#8217;ve relied heavily on advice, research and help by my brother <a href=\"https:\/\/bjorn.haxx.se\/\">Bj\u00f6rn<\/a> for this.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">CPU<\/h3>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"alignright size-full is-resized\"><a href=\"https:\/\/daniel.haxx.se\/blog\/wp-content\/uploads\/2022\/12\/intel-core-i7-13700k-raptor-lake.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/daniel.haxx.se\/blog\/wp-content\/uploads\/2022\/12\/intel-core-i7-13700k-raptor-lake.jpg\" alt=\"\" class=\"wp-image-20914\" width=\"155\" height=\"188\"\/><\/a><\/figure>\n<\/div>\n\n\n<p>I&#8217;m a sucker for maximum single-thread performance. Lots of things I do still run in single-threaded in a single core so I think this is good for me.<\/p>\n\n\n\n<p>The <a rel=\"noreferrer noopener\" href=\"https:\/\/www.intel.com\/content\/www\/us\/en\/products\/sku\/230500\/intel-core-i713700k-processor-30m-cache-up-to-5-40-ghz\/specifications.html\" target=\"_blank\">Intel Core i7-13700K<\/a> at 3.4 GHz is benchmarked at a CPU Mark that is over 7 times faster than the CPU of my old machine. 16 cores, Socket 1700 Raptor Lake. &#8220;13th gen&#8221;<\/p>\n\n\n\n<p>On <a href=\"https:\/\/www.cpubenchmark.net\/singleThread.html\">cpubenchmark.net<\/a>, this model is currently ranked 4th among all current CPUs in single-thread performance.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">CPU Cooling<\/h3>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"alignright size-full is-resized\"><a href=\"https:\/\/daniel.haxx.se\/blog\/wp-content\/uploads\/2022\/12\/noctua_nh_u12a_1_2.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/daniel.haxx.se\/blog\/wp-content\/uploads\/2022\/12\/noctua_nh_u12a_1_2.jpg\" alt=\"\" class=\"wp-image-20912\" width=\"166\" height=\"204\"\/><\/a><\/figure>\n<\/div>\n\n\n<p>I think I&#8217;m not alone in having past happy experiences with Noctua. This time I use the <a href=\"https:\/\/noctua.at\/en\/nh-u12a\" target=\"_blank\" rel=\"noreferrer noopener\">Noctua NH-U12A<\/a>, which I have gotten reports does a good job for this CPU.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Motherboard<\/h3>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"alignright size-full is-resized\"><a href=\"https:\/\/daniel.haxx.se\/blog\/wp-content\/uploads\/2022\/12\/MSI-PRO-B660M-A-DDR4.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/daniel.haxx.se\/blog\/wp-content\/uploads\/2022\/12\/MSI-PRO-B660M-A-DDR4.jpg\" alt=\"\" class=\"wp-image-20911\" width=\"251\" height=\"252\"\/><\/a><\/figure>\n<\/div>\n\n\n<p>Something to host the CPU that just does the job. <a rel=\"noreferrer noopener\" href=\"https:\/\/www.msi.com\/Motherboard\/PRO-B660M-A-DDR4\" target=\"_blank\">MSI PRO B660M-A DDR4<\/a> is a small board, but I don&#8217;t need anything more.<\/p>\n\n\n\n<p>Turned out to require a little dance to make it accept my CPU since the BIOS it shipped with did not support it, so we had to insert an older CPU first just in order to upgrade the BIOS to make it boot with the intended CPU!<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Graphics<\/h3>\n\n\n\n<p>My plan is to start trying out the built-in Intel video capabilities. Nothing extra. Lots of space in the box!<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Memory<\/h3>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"alignright size-full is-resized\"><a href=\"https:\/\/daniel.haxx.se\/blog\/wp-content\/uploads\/2022\/12\/corsair-VENGEANCE-RGB-PRO-SL-BLACK-01.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/daniel.haxx.se\/blog\/wp-content\/uploads\/2022\/12\/corsair-VENGEANCE-RGB-PRO-SL-BLACK-01.jpg\" alt=\"\" class=\"wp-image-20910\" width=\"264\" height=\"134\"\/><\/a><\/figure>\n<\/div>\n\n\n<p>I don&#8217;t think I&#8217;ve experienced a situation when I have run out of my memory in my current 32GB setup, so my original plan was to go with 64GB in this new machine. However it turned out that the motherboard does not work with all four slots using my 3600MHz memories at full speed and I decided it is better to start out with 32 really fast gigabytes than 64GB at 2100MHz (which was the alternative)!<\/p>\n\n\n\n<p><a rel=\"noreferrer noopener\" href=\"https:\/\/www.corsair.com\/eu\/en\/Categories\/Products\/Memory\/Vengeance-RGB-PRO-SL-Black\/p\/CMH32GX4M2D3600C18\" target=\"_blank\">Corsair Vengeance RGB PRO SL  \/ 3600MHz \/ DDR4 \/ CL18<\/a>. Two 16GB modules installed makes it 32GB in total. I can go 2x32GB in a future when if this turns out to be too limited.<\/p>\n\n\n\n<p>RGB-LEDs on the memory modules is apparently a thing now.<\/p>\n\n\n\n<p>Should be &gt;50% faster than my old memory.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Storage<\/h3>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"alignright size-full is-resized\"><a href=\"https:\/\/daniel.haxx.se\/blog\/wp-content\/uploads\/2022\/12\/samsung-990-pro.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/daniel.haxx.se\/blog\/wp-content\/uploads\/2022\/12\/samsung-990-pro.jpg\" alt=\"\" class=\"wp-image-20908\" width=\"238\" height=\"65\"\/><\/a><\/figure>\n<\/div>\n\n\n<p>I am not a data hoarder. On the disks in my current machine I use just a few hundred gigabytes. 2 TB will give me sufficient space to play with for a while. My old machine had a 3 TB spinning disk so this is less room than before, but I don&#8217;t expect that to be a problem. This storage is speced doing 14 times faster reads than my previous SSD.<\/p>\n\n\n\n<p>The <a href=\"https:\/\/www.webhallen.com\/se\/product\/331649-Samsung-980-Pro-series-SSD-2TB-M-2-MZ-V8P2T0\" target=\"_blank\" rel=\"noreferrer noopener\">Samsung 980 Pro series SSD 2TB M.2 (MZ-V8P2T0)<\/a><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Power Supply<\/h3>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"alignright size-full is-resized\"><a href=\"https:\/\/daniel.haxx.se\/blog\/wp-content\/uploads\/2022\/12\/kolink-enclave.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/daniel.haxx.se\/blog\/wp-content\/uploads\/2022\/12\/kolink-enclave.jpg\" alt=\"\" class=\"wp-image-20909\" width=\"264\" height=\"179\"\/><\/a><\/figure>\n<\/div>\n\n\n<p>The <a href=\"https:\/\/kolink.eu\/Home\/psu-1\/enclave-series\/kolink-enclave-80-plus-gold-psu%252C-modular---600-watt.html\"><\/a><a href=\"https:\/\/www.webhallen.com\/se\/product\/306332-Kolink-Enclave-600W-80-Gold\" target=\"_blank\" rel=\"noreferrer noopener\">Kolink Enclave \/ 600W \/ 80+ Gold<\/a> is nothing special. A modular and cheap alternative that my preferred supplier happened to offer. Again, I will not run any power hungry graphics cards.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Case<\/h3>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"alignright size-full is-resized\"><a href=\"https:\/\/daniel.haxx.se\/blog\/wp-content\/uploads\/2022\/12\/Fractal-Define_7_TGD_Black_Compact_Left_Front-1440x1440-1.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/daniel.haxx.se\/blog\/wp-content\/uploads\/2022\/12\/Fractal-Define_7_TGD_Black_Compact_Left_Front-1440x1440-1.jpg\" alt=\"\" class=\"wp-image-20906\" width=\"220\" height=\"298\"\/><\/a><\/figure>\n<\/div>\n\n\n<p>Me and friends have been happy with Fractal Design cases in the past and a friend of mine mentioned that he recently purchased this model and is very happy, so I went with the <a href=\"https:\/\/www.fractal-design.com\/products\/cases\/define\/define-7-compact\/\" target=\"_blank\" rel=\"noreferrer noopener\">Fractal Design Define 7 Compact \/ Solid<\/a>.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"alignleft size-full is-resized\"><a href=\"https:\/\/daniel.haxx.se\/blog\/wp-content\/uploads\/2023\/02\/dev23-internals.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/daniel.haxx.se\/blog\/wp-content\/uploads\/2023\/02\/dev23-internals.jpg\" alt=\"\" class=\"wp-image-21509\" width=\"245\" height=\"329\"\/><\/a><figcaption class=\"wp-element-caption\">Internals with motherboard and CPU cooler in place. Not a lot of extra things in this&#8230;<\/figcaption><\/figure>\n<\/div>\n\n\n<p>This is a big case for a what is otherwise a very small computer (need). Partly because of the recommendation but also partly because that my preferred supplier did not offer any smaller Fractal Design case at the moment. At least there will be lots of air in the box.<\/p>\n\n\n\n<p>This case looks almost identical to my old case which will make my machine upgrade at least physically impossible to detect in my home office once installed.<\/p>\n\n\n\n<p>Front interface from left to right: Reset button, Audio I\/O, 1x USB 3.1 Gen 2 Type-C, Power button, 2x USB 2.0, 2x USB 3.0,<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><a href=\"https:\/\/daniel.haxx.se\/blog\/wp-content\/uploads\/2023\/02\/dev23-front.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"3723\" height=\"1299\" src=\"https:\/\/daniel.haxx.se\/blog\/wp-content\/uploads\/2023\/02\/dev23-front.jpg\" alt=\"\" class=\"wp-image-21511\"\/><\/a><\/figure>\n<\/div>\n\n\n<h2 class=\"wp-block-heading\">Speed comparisons<\/h2>\n\n\n\n<p>Here&#8217;s how the new beast compares to the old box when doing a few of my regular every day tasks.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Building stuff<\/h2>\n\n\n\n<p>On a typical curl debug build of mine, identical setups. Run-time in seconds on the new machine vs the old.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td><strong>Task<\/strong><\/td><td><strong>Old<\/strong><\/td><td><strong>New<\/strong><\/td><\/tr><tr><td>build curl with make -sj<\/td><td>13.1<\/td><td>2.7<\/td><\/tr><tr><td>autoreconf -fi<\/td><td>13.2<\/td><td>5.6<\/td><\/tr><tr><td>configure<\/td><td>19.3<\/td><td>10.1<\/td><\/tr><tr><td>build in curl&#8217;s test directory<\/td><td>30.1<\/td><td>7.6<\/td><\/tr><tr><td>run the first 200 curl tests <strong>with<\/strong> valgrind<\/td><td>331<\/td><td>194<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>Downloading 100 GB from http:\/\/localhost to \/dev\/null with curl. Old: 2248MB\/sec. New: 4281MB\/sec.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>My desktop computer is my trusted work machine that I do the majority of all my (curl) development on. When the 15th computer I&#8217;ve owned through the times was ten years old the time was ripe to bump things up a notch. Requirements I don&#8217;t do games (as in: never) and I don&#8217;t do any &hellip; <a href=\"https:\/\/daniel.haxx.se\/blog\/2023\/02\/20\/my-2023-dev-machine\/\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">My 2023 dev machine<\/span> <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":5,"featured_media":12345,"comment_status":"open","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[7],"tags":[419,395],"class_list":["post-20835","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-curl","tag-development","tag-hardware"],"_links":{"self":[{"href":"https:\/\/daniel.haxx.se\/blog\/wp-json\/wp\/v2\/posts\/20835","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/daniel.haxx.se\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/daniel.haxx.se\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/daniel.haxx.se\/blog\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/daniel.haxx.se\/blog\/wp-json\/wp\/v2\/comments?post=20835"}],"version-history":[{"count":51,"href":"https:\/\/daniel.haxx.se\/blog\/wp-json\/wp\/v2\/posts\/20835\/revisions"}],"predecessor-version":[{"id":21818,"href":"https:\/\/daniel.haxx.se\/blog\/wp-json\/wp\/v2\/posts\/20835\/revisions\/21818"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/daniel.haxx.se\/blog\/wp-json\/wp\/v2\/media\/12345"}],"wp:attachment":[{"href":"https:\/\/daniel.haxx.se\/blog\/wp-json\/wp\/v2\/media?parent=20835"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/daniel.haxx.se\/blog\/wp-json\/wp\/v2\/categories?post=20835"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/daniel.haxx.se\/blog\/wp-json\/wp\/v2\/tags?post=20835"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}