167 comments

[ 2.9 ms ] story [ 223 ms ] thread
It’s not loading for me
You have to go to the prices link at the top. Threw me off too.
I guess you went the route of creating blog posts to play nice with the amazon affiliates program? I'm curious if that's working for you. Have been wondering if I need to do something similar. What's your experience been like so far?
naah, this ai blog garbage doesn't rank
I mean it's really obvious. If it's really obvious to me, it's probably also really obvious to google.
It looks like making things easier to search through is a typical Hacker News project.

I had a similar idea some years ago for flashdrives:

https://www.productchart.com/flashdrives/

Except I decided to implement a two-way sort, so the result is a chart, with axis "price" and "size". Or whichever parameter you chose. (At least on Desktop. On mobile, I show a list.)

Then I added ssd drives:

https://www.productchart.com/ssd_drives/

And more product types like monitors, phones etc, which you can access from the menu.

Maybe we should make a group to discuss the way forward and how to make the whole world easier to search through.

Feature request: either an “uncheck all” or a “Select only” to select only one option in a list. Otherwise it’s a lot of clicking to find the 1 specific type of RAM you might be looking for.
how about 'right click' on a checkbox removes all other selections in that options section
Hiding stuff like that is never good. Not for discoverability, not for mobile.
Good point. I’ll add that in next iteration. Was conflicted if it was a button worth including.
If you think that is bad, mouser quoted me over $300 for a 28c256... sure, they're new old stock, but who do they think are going to buy them at that price?
There's a whole host of these, which is great, thats been listed recently at https://news.ycombinator.com/item?id=39262314

This one's mine https://listofdisks.com/ :-)

The faceted search approach can be applied to so many things, and it's pretty easy to code up.

I’m sure these are trade secrets, but how do these sites get all the data? Is it just scraping?
No trade secret here, it is indeed simple web scraping.

Although as noted, Amazon does provide a product API, if you qualify with 3 sales, which I did, and was then promptly ejected from the affiliates program by Amazon. I'm honestly not sure I'd want to build my product on top of their API as they then have you by the short and curlies.

I'd be interested to see how all these other "copy cat" sites fare with the Amazon policies?

I guess we’ll see. I took the scraping route, for both reasons - didn’t have the 3 sales to qualify, and I don’t like the idea of coming cap-in-hand to Amazon for access to their API. Easier to just scrape what I need.

BUT we’ll see what happens when/if I try to get a few bucks back from the affiliate links ¯\_(ツ)_/¯

Wait. So you weren't ejected until you tried to use the API? Were you earning anything from your affiliate links prior to getting access to the API?
Thanks for building this. As someone who got bit by this, could you please add a column for SMR vs CMR? Thanks again!
I had to check what that was. I'd love to add it, along with any other useful metrics that people would find useful, but I'd be surprised if that detail was available in the provided Amazon info (web page).
Add sorting on the columns. First thing I tried was seeing which one was cheapest per GB.
This would be very nice, but it is still very incomplete.

The table needs an additional attribute, ECC vs. non-ECC.

Searching the list for a 2 x 48 GB DDR5 SODIMM kit finds none, while an Internet search finds candidates immediately (e.g. Crucial DDR5-5600 @ $298.99).

There’s still some new product entries being discovered and added…not sure if what you found was on Amazon, but theoretically, eventually, candidates like that will land in the table.
Missing an 'ECC' vs 'Non-ECC' filter... and I honestly would like all the marketing people that feel a need to specify 'Non-ECC' to just be fired for search pollution.
Someone correct me if I am wrong but isn't DDR5 ECC by default? I know this from an anecdote that I used to enable XMP all the time in my builds and run RAM stability tests, none ever caught anything but on my DDR5 builds, if I turned on XMP and played a game for an extended period, I'd get a BSOD after 4-5 hours, which I figured is the ECC built into DDR5 flagging something unexpected.
The default DDR5 ECC is not exposed to the outside, not reported to the OS.

You only caught errors on DDR5 because it's stability is very brittle. Market forces push it to the limit - everybody cares about the MT/s and runs XMP unlike previous generations.

DDR5 seems to have optimistic XMP settings, whereas DDR3/4 were more conservative.

I have, however, had very good luck so far just buying faster DDR5 and then running it a little slower at the same timings, which is how I arrived at the idea that DDR5 XMP is usually too fast to be actually stable.

I think it's just the memory controllers not being as mature yet.

For some point of comparison: Intel 12~14th gen operate DDR5 at 4GHz with 2DPC (DIMMS per channel), AMD Ryzen 7xxx at 3.6GHz with 2DPC.

With 1DPC the numbers are slightly better, with Intel 12th at 4.8GHZ and 13th/14th at 5.6GHz and AMD Ryzen 7xxx at 5.2GHz.

All a far cry from the ridiculous overclocks at 6GHz and above.

XMP profiles are still seemingly more conservative for DDR4, since I would typically run my 3200MHz DDR4 at 3840MHz. That stopped once I added a couple mismatching sticks though, now I have to run the set at 3105MHz or the system won't POST. Not a particularly big deal.
There are two ECC types in DDR5: on-die ECC and external.

All have on-die ECC, which always operates. It is relatively rare to have external; something like Kingston Server Premier, and then you would need a motherboard to support it e.g. some of the Asrock ones, or just a server motherboard (MSI D3051, etc.)

AFAIK there's a performance hit using external ECC, as it adds an extra cycle. I think errors get reported to the OS differently. Beyond that, I know nothing.

> AFAIK there's a performance hit using external ECC, as it adds an extra cycle.

This may be the case in some specific implementations but nothing in the DDR5 spec prevents you from pipelining the ECC calculations alongside the cycles you already need for cache management anyway. The memory itself and the interface don't care, they just do 72bit instead of 64bit.

> It is relatively rare to have external;

Just to dispel this myth - here's all my electronic devices that have replaceable memory, and which of them support ECC:

ECC support (and using ECC memory):

- my old home server (an old Xeon E5-2630v2, DDR3, Supermicro MB, slated for disposal)

- my new home server (a Ryzen V3C48 embedded system, solid-run, uses DDR5 SO-DIMM)

- my desktop (a Ryzen 1700X, DDR4, ASrock mainboard)

Broken ECC due to BIOS:

- my laptop (HP Elitebook 845 G9, Ryzen 6950HS, DDR5 SO-DIMM, CPU supports ECC; BIOS hangs on boot when I insert ECC memory)

No ECC:

- none, actually.

(dis-)honorable mentions, no ECC, but memory not replaceable anyway:

- my geriatric wifi router (some TP-link, about to be ditched)

- my 2 extra wifi APs (also some TP-link)

This rate of ECC support is probably a bit exceptional, but… the primary reason ECC support is hit-and-miss is that Intel decided to fuse it off on their desktop CPUs to do market segmentation.

The fact that a handful of enthusiasts on a technology forum have machines with ECC has zero relevance to whether it is rare. It is. Virtually all consumer prebuilt x86 PCs lack ECC. The majority of DIY builds are Intel, and their enthusiast Core CPUs lack ECC. Most Ryzen boards do not actually support it.

When people say ECC is rare, they’re not talking about you.

> AFAIK there's a performance hit using external ECC, as it adds an extra cycle.

Haven't heard that before. What are you basing it on?

I base this on my day-to-day messing with firmware for some Arm microcontroller implementations, and it is only a guess that PC would be similarly affected and only affecting latency, not throughput. But, in this specific case, I don't know.

I only learned enough to buy some and put it in my last build, and I've only gone as far as checking that dmesg says the memory bus is 72 bits wide; no benchmarks, no overclocking. Then again, my goal is stability and not performance.

ddr5 ecc is on-die ecc, that is built in with the ram die, while the regular ecc relies on extra bit width(72 bit instead of 64 bit) going all the way into CPU such that it's detectable also on cpu (hence OS level) side, which also ensures the error during transmission get corrected as well.
DDR5 uses on-die ECC to improve chip yield (AFAIK.) Any errors are not reported to the OS so the BSODs you experience are not resulting from reported ECC errors. They could be the result of uncorrected memory errors that are undetected but cause the OS to crash.

Some DDR4 also uses on-die ECC. The specs for the Raspberry Pi 4B list DDR4 ECC RAM.

Thanks - ECC was rare enough I figured the titles covered it, but it’s already parsed for in the backend so it won’t be that hard to add.

Edit: still tracking down a weird filter bug, but the ECC filter should work now.

> ECC was rare enough

No it isn't, this is the bare minimum. You should also filter by rank, timings, voltage, etc.

This is a hobby project, the bare minimum is nothing at all. I agree that these are probably critical features if this website is trying to be best-in-class, but I suspect that it is not.
Wow we're under $1/GB of RAM (in certain cases).

Hard to comprehend. I remember getting a 1GB hard drive and how crazy that was, and then much later when a mechanical drive was $1/GB.

Seeing RAM hit that is something else!

Someone tell Nvidia

(I know, I know, this isn't the fancy GDDR or HBM stuff.)

HBM is often, as I recall, $30/GB for comparison
Yet Apple dares to ship a laptop with 8gb ram that is not upgradable. RAM is dirt cheap but somehow the market abusers make it look like it's some expensive rare resource.

Even Thinkpads now solder ram to sell you a +16GB upgrade for 100usd (6usd per gb, double the market price).

The funniest thing about this is apple's engineer claiming 8gb on apple is equivalent to 16 on other systems.
They're basically openly calling their userbase idiots to increase the profit margin by 20usd on a 1,500++ usd device. Incredible how we got to this state where the RAM market quality in consumer devices is quickly degrading because of corporate greed not because of any market or technical challenge.
That was always true. Iphone with 128gb, Mac with 8gb ram, etc.

And MacOS in some cases says to user "fuck you! Next time buy apple device instead". Like to write to NTFS pendrive.

But then in many cases the solution is to open Unix terminal to do what you want.

> Iphone with 128gb

Is 128GB of disk in a phone too little?

Depends on usage.

My Galaxy Note 8 has a 400gb microsd card in it that's pretty full. Same for my android tablet.

Tablets without microsd and 3.5mm (such as the fancy and expensive but practically useless iPad I got as a gift) are abomination upon God and man, but I'm a grouchy old geezer so take that opinion with a grain of consumer salt :)

I have s22 128GB model and it certainly is too little.

I'm fully "in the cloud" and use google drive, photos and other sync extensively and recently I started to do more photography and videography completely casually (like while I'm on a hike) and the space limitation really shows to the point where I'm never buying a phone with <500GB. The space management is just so exhausting especially since everything is just so much bigger these days.

I don't understand how these "premium" devices ship with the least premium problem out there - moving files and saving space feels like such a cheap problem that you'd expect on 100usd android not on a flagship.

Right, I guess people are different in that regard. Don't have statistics but I don't know people to whom 128GB would be too little. Could be living in a bubble though.
> They're basically openly calling their userbase idiots

But their userbase keeps buying the higher-priced models. Wouldn't Apple be idiots, if they charged less than what the market will clearly bear?

Corporate greed is arguably a market challenge
But it's true, in fact it's an understatement: a 8gb mac makes you look way cooler than an 32gb pc.
Well yeah, because with only 8GB of RAM you have much more free time to practice looking cool while your machine grinds away in the trenches of swapistan
Maybe to the average consumer, but here it does not.
This happens to be very much the case in phones for both RAM and batteries. Although not by a factor of 2.
While not exactly true, it is a fact that Apple tries really hard to make the most out of a little memory while other systems (Windows, Android or Linux) piss away a lot of memory due to inefficiency, virtual machines etc and the only answer is 'just buy more RAM', which adds to cost, battery usage and is generally frowned upon as a solution to inefficient programming.
Do you have any real hard data that lets you to claim that macOS or iOS are more efficient than Linux or even Windows?
I think it comes down to a few design decisions like not standardizing on a VM based language with GC (like Java/.NET) which leads to more memory consumption. Only allowing a single browser engine will also keep memory usage lower on iOS. Apple was also early with a good memory compression implementation.

Of course, nothing will help you if you really want to run horrible applications, but at least the base system is optimized. You can run quite a lot of workloads even on an 8Gb Mac.

In my experience desktop linux is significantly lighter than macOS though
Depends on what desktop you use. A full Gnome or KDE desktop will eat a lot of memory.
Gnome uses 2GB at most when not memory-constrained.
I have 32GB on my Linux desktop. On a normal day I use 6GB of memory.
Apple uses RAM and storage as price discrimination feature. And it also wants entry level machines so they can say “starting from …” It has nothing to do with the price of the memory itself. It is merely a factor that people are willing to pay for.
My dad paid ~$100 for 4 MB of RAM and that was more than his one weeks income.

Tech has gotten really cheap.

I remember flying to the UK for a holiday, and all I wanted there was a 512KB upgrade for my Amiga. Not a jersey, not a watch, just a RAM upgrade.
Kinda depressing to realize that I'm probably older than your dad because I remember paying about $560 for 16mb RAM in about 1995, and that was to upgrade the 2nd computer I owned. (I also remember about a year earlier, thinking $400 for a new 1.0gb hard drive was a great deal -- forget megabytes, we're in the future now, an entire GIGA-byte baby!!!)
Get off my lawn, kid! I paid $300 for 4MB of RAM in ~1993.
That's nothing. My company had to buy me a 4MB expansion card in the late 80s so I could run this new fangled OS called OS/2. It cost nearly $2000.
Hold my beer. The first PDP-11 computer our company bought, with 64kb RAM, cost 10 times my yearly salary.
I think the difference here is that the first few comments are referring to PCs, i.e. "Personal Computers". Everybody has a story of wildly expensive equipment that their employer purchased. Or worse, spending tens of millions on something like a data warehouse or ERP system and then limiting compensation for the individuals tasked with extracting value from those systems to $90-120,000. But now we're way off topic...
Of course room-sized computers from the days of NASA were incredibly expensive. I was just replying to a comment about 4MB of extra memory for a PC in the early days.
It's amazing what performance you can get by simply putting in as much RAM as your data needs - if plugging in a terabyte or two of RAM ensures that all your data is "in cache" on a single system (+ e.g. a mirror for redundancy) instead of having to constantly read from disk or do horizontal scaling, that's a relatively cheap way to get a simple&performant system.
One of the first people I know that "worked in computers" when I was a kid had a really fast 386 running Windows 3.0

I complained about how slow my 1 Meg 386 was and wanted a 486, he said he had 16 megs of ram (kind of insane at the time) and always said "the system will wait on you"

That was somewhat true until you went to load a new file or program that wasn't cached yet, or when a heavy re-draw occurred and a 4mb 486 would dust it. You just didn't page anymore, which happened a lot back then.

Actually, this is one of the easiest strategies to write slow software, because you're relying too much on the hardware to bail your poor decisions out. When running the software on worse hardware, you will see super linear slowdown.
This is from the perspective of designing a custom system for doing a particular business function, and its software and hardware are interlinked parts of the whole design (as would be e.g. a cloud platform if that was used for it), and it makes all sense of always considering them together as that enables valuable tradeoffs of one vs another instead of assuming that "this hardware must be powerful&efficient for any system" and "this software should run on any hardware". The software isn't intended to ever run on any other hardware, so in that context questions like "running the software on worse hardware" are meaningless as the software is not an isolated component meant to be deployed somewhere else on unknown hardware, it runs exactly on the hardware you want, and if you can save $5k of software costs by spending $1k of hardware costs then you should do it just as eagerly as if you could save $5k of hardware costs by spending $1k of software work. (Which is quite different from mass market software, where you have to consider small runtime savings multiplied by vary many different consumer devices running the same software)

But for many companies building such systems (custom line-of-business software is probably still the largest part of software development happening in the world) it's highly probable that if you can "bail your poor decisions out" by just buying RAM, that's is far more efficient than rebuilding parts of software - a saved man-month of engineering can buy a LOT of RAM; a terabyte of it is probably in the range where it's not even particularly worth trying to carefully evaluate the options as a well-staffed meeting or two discussing the possibilities can be more expensive than buying a few RAM sticks more.

This sounds straightforward but you're glossing over a lot of second order effects. Notably, if this idea dominates your attitude you'll be much more likely to miss the cases where a bit of judicious optimization actually would save substantially more in hardware costs. And it may not be 1k of hardware costs, but hundreds of k per year of cloud compute costs, depending on the situation.
I've been getting my hands dirty root causing a latency issue in another team's codebase at work. The program needs to run in real time, but the language is JIT compiled and garbage collected. In my most recent experiment, I successfully eliminated the most egregious spikes by completely turning off garbage collection during the latency sensitive phase. RAM usage creeped up to 50GB, but my workstation has 64GB so good enough? Also, I need to run the program 3-4 times to cache all the code paths, given that the program behavior is latency dependent. Just to make things extra spicy, the program seems to also spin off a rogue process that fills up my 1TB SSD and then die after a few hours.
If it’s easy/cheap to build 1-2 TB RAM systems, why are there so few I can rent from AWS?

I settled for 768GB when I tried a few months ago and it wasn’t cheap. They did have like one HANA class system that was multi-TB at even crazier prices but I was kind of disappointed when I went to do something like you suggest. It was also impossible to get a lot of RAM without overpaying for a lot of cores I didn’t need and couldn’t use.

I don’t disagree with your point about the optimization benefits of just caching data but actually getting a cache optimized system is seemingly another thing entirely. My perception is that it’s been hard to get >768 GB systems for a bunch of years now. But I don’t follow this space closely,

I used to work for a guy in the 90s that sold Ram over the phone. He would get clients that needed to buy a bunch and broker deals with manufacturers. This was before internet pricing.

We would have a white board of all the different sticks and prices.

So now we have:

- diskprices.com

- cpuscout.com

- ramstickprices.com

- gpuprices.lol/prices

Now we just need MOBO, power supply, fans and case price trackers!

*Edit: goryramsy's list below is more complete than this one. Thanks!

>Now we just need MOBO, power supply, fans and case price trackers!

Recreating pcpartpicker[0] one piece at a time.

0. https://pcpartpicker.com/

Back in the day, a wonderful solution to your dilemma existed. It was cheap, it was up-to-date, it covered virtually every vendor and every product in existence, the only downside was it was heavier than a phone book: Computer Shopper magazine
RDIMM please (filtering specifically for ECC versus not). Voltage would also be appreciated.
Voltage is on the todo list! RDIMM should be on there now.
For Germany (and i guess Europe) there always is: https://geizhals.de/
yes, i am always suprised that such a tool does not exist everywhere (at least the modern western world...). not every shop is in there and rarely I buy from elsewhere... but even just checking specs of any kind of "hardware" (geizhals has also home appliances, ...), or seeing what is available with certain specs, geizhals is a godsend.

and it mostly still has that "old-web"-style :-)

originally geizhals.at, geizhals.eu for a wider market. skinflint.co.uk and cenowarka.pl exist as well
In a spirit of cooperation, you could add a link to other similar websites for other types of equipments (https://diskprices.com/, https://gpuprices.us/, etc).
Just spun up gpupricecompare[0] for GPU prices from eBay as well.

Still need to add more filters, of course, but figured I’d throw it out there as well while it’s in progress and topical for the discussion.

[0] https://gpupricecompare.com

This one is close to useless, no filtering.
I’m well aware, as I said in my comment, I need to add filters and am working on it!
That’s a good idea. I didn’t even know gpuprices.com existed! But yeah, I tried to give diskprices a lot of credit here.

Edit: there's a new entry in the sidebar.

Update: added another block after the diskprices credit with all the other similiar sites I could track down, in order that I tracked them down. Did I miss any?
Tried gpuprices, it's not good. if you search for 24GB RAM minimum, it doesn't return a single 3090.
(comment deleted)
Adding to the list of feature suggestions, it would be nice for a manufacturer tier filter. I'm not interested in "A-Tech" RAM, which, rumour has it, is sourced from Kingston's chip binning rejects. So of course it's going to be cheaper, that doesn't mean you want it.

It would be nice to be able to filter by only the proper trusted brands and first-party manufacturers.

Also hdd-prices.com
(comment deleted)
I'd expect a "Show HN" post to at least explain a bit how they built it (or even better link to some browsable source repo if it's open source).

Apart from the nit-pick: nice work! I had a look at the source, proper minimalism right there (and a stray html tag), just loads the page containing all data/JS/CSS and a favicon.

I mean, that's fair. A decent chunk of the backend effort was figuring out how to scrape amazon without setting off their bot detection; I'd rather not tell them how I did that. The rest is an unholy collection of bash, python and TCL scripts assembling raw html - not surprised there's a stray html tag. Ha.

I forget who said it first, but the Linux OS really is the ideal environment for async operations. I just have some shell scripts running in their own while loops, downloading, parsing, building and uploading.

Thanks! :D

Especially for the Speed selection it needs an invert toggle. Why not use numbers to click for the Capacity? Lastly, something like a sane default or a choice of the three most common search queries would make using it much faster.
Good suggestions, thanks! I was on the fence about the capacity filter. Wasn’t sure if discrete numbers would get in the way or be easier to use.

The invert/uncheck all button is definitely on the list. Hadn’t thought of making it an invert button - I’d put off adding it because I didn’t like the idea of check/uncheck all. Thanks.

I don’t track anything on the site (static hosting from my registrar lol) so I can’t track common queries- but sane defaults makes sense. I can at least uncheck the ancient stuff by default.

Does it only show prices for which you have an affiliate link? I noticed the majority of links are to Amazon which generally isn't great for PC hardware (lots of returned products, fakes, etc).
…yes. This is exclusively scraping Amazon. Keeps it simple. Also it seemed like a lot of the reason why Amazon is suboptimal for PC hardware is because it’s hard to find stuff - so maybe this helps make Amazon a better option.
Just in case you didn't know, there is https://geizhals.eu which is the same as https://skinflint.co.uk which has very, very detailed filtering and sorting capabilities. Plus an android app (maybe iOS too). My personal go-to app/site when searching for computer hardware. Check it out.
Absolutely this. Information is money!
awesome site that geizhals, even if you don't need to buy from there, the amount of filters is just impressive. Take hard drives for example, you can filter on CMR HDDs so you don't get a HDD that is rubbish in your NAS
you can't buy from Geizhals, it just links to a large amount of different European (mostly German) online retailers :D
I think geizhals.eu is the first time I've ever seen my Do Not Track header respected, or at least acknowledged. That's nice.
This looks great and is new-to-me. Key feature in this context, you can filter memory by CAS timings.

Is there a version for the US market? I couldn't find one. More info on the site: https://en.wikipedia.org/wiki/Geizhals

One more great feature is that you can compare side by side, particularly if you want to understand different ranks etc, and that you can assemble a virtual shopping cart that also gives you the best option when also considering postal fees.
This seems to be Amazon-only, without stating so anywhere. If this is the case, it really needs to say it, and prominently.
The first entry is mis-labelled as 512GB when it's actually an ancient 512MB stick. Only 1 of the top 5 is actually available to buy. I'd recommend cleaning up the data, and filtering by availability as it's very easy to have an amazing product and price that no one can buy, which isn't useful to have in the data.
The Amazon page has it wrong, so OP’s chart is also.
Yeah that's a good catch. That entry probably showed up overnight - I'm still working on the rarer edgecases. I actually assumed everything would be denominated in GB! My bad.

Edit: odd, they all show as available to me (in the US?).

Ah you're right. Some show as on sale in the US, shippable to the UK, some show as on sale in the US but not shippable to the UK, and some show as not on sale at all regardless of country (but when switching country to the US are on sale). Strange!
Stretch goal is to split up the site by geography the way diskprices does. That would probably fix what you’re seeing. But that would double the resource requirements on the backend and I’d have to rewrite/abstract a bunch of stuff…so for now I’m just going to make the pages open in new tabs, and figure we just keep looking until we find what’s available locally. Pretty sure I’m pulling worldwide, so there’s likely stuff not available in the US too.
Well it's correct once in the title, incorrect another time in the title, and the data may be incorrect. I suspect that was a malicious attempt by the seller to be borderline on correctness, get unsuspecting sales, and then claim correct listing based on the title. Unfortunately on Amazon/AliExpress/etc this is fairly common and something that needs to be accounted for in usage of the data like this.
Not that anyone would care about DDR1 anymore, but the DDR(1) filter doesn't work.
I think I messed up the JavaScript filtering code. I have a guess why it doesn’t work, but it’ll have to wait until after work hours.