5 ms·
In this case you have massive scale so a small amount of developer time can equate to a big reduction in CPU cycles. Those are the constraints you work with. T
by xupybd 4y ago
In this case you have massive scale so a small amount of developer time can equate to a big reduction in CPU cycles.
Those are the constraints you work with. Those are the business problems you are solving. So yes this was justified. It was justified on the numbers.
My point is that your job is only to tune performance iff there is a solid business case for it.
I spent a week reducing a pages load time because the busines saw the load times as a problem for customer acquisition. The cost of my time was justified. Meanwhile we had a task that for 6 years took over an hour to run. I optimized it to take less than a second. That change has offered zero business value and was a waste of time. It runs periodically on a server that is most often idle. There was no justification for that work, other than it taught me to align my efforts with the business.
CPU cycles are much cheaper than developer hours. But yes, if you have enough of them yes they will cost more than a developer.
- jay_kyburz 4y ago>My point is that your job is only to tune performance if there is a solid business case for it. I think its very very hard to put a cost on performance. A few seconds here or there is very draining on people. How do you measure if people are avoiding doing things, or putting off work because their tools are janky. How do you measure how much time people spend complaining about how slow their computer is?
- xupybd 4y agoHow replaceable is that person? If they are a normal business admin they are very replaceable. So you don't have to make life easy for them unless they can justify the cost of doing so. How busy are they? If you have a 1 EFT position filled by an administrator that is only 60% busy then there is no cost in slowing them down until they're at 100% capacity. Then you might think about making life easier for them to avoid having to hire the next administrator. If people avoid doing their job because they don't like their tools that is a disciplinary matter. Time to find an administrator that can do the job required.
- mtrower 4y ago> If they are a normal business admin they are very replaceable. So you don't have to make life easy for them unless they can justify the cost of doing so. That is a mentality which is too horrifiying to find proper words to describe. > If people avoid doing their job because they don't like their tools that is a disciplinary matter. Time to find an administrator that can do the job required. It's human nature to avoid difficult things. Discipline only goes so far; it happens subconsciously. And anyway, small inefficiencies add up to mountains, but it can be hard to see what's going on when everything is just pebbles everywhere.
- inkblotuniverse 4y agoI dislike government intervention, and so disavow my following statement. In the course of fining hidden externalized costs like those of dumping chemical waste into rivers, governments might fine software developers when they dump informational waste on to customers' machines, and if it does, they'll deserve it. Anyone who ships an electron app goes to the gulag.
- inkblotuniverse 4y agoI dislike government intervention, and so disavow my following statement. In the course of fining hidden externalized costs like those of dumping chemical waste into rivers, governments might fine software developers when they dump informational waste on to customers' machines. In this hypothetical, they deserve it. Anyone who ships an electron app goes to the gulag.
- jiggawatts 4y agoIt's not a massive scale at all! It's just "Enterprise" edition software (SQL Server, etc...) that costs $$$ to scale up. The actual production platform is just a dozen or so virtual machines, they're not even that big. Not everybody has their own data centre where they pay cost-price for all-Linux servers that run only free software. In a typical business that hosts their servers in the public cloud, it's not unusual for a single database index to allow savings of tens of thousands a year. E.g.: SQL Enterprise on an Azure E8bds_v5 VM is $2,678 per month, but the next step up to E16bds_v5 is $5,355 per month! If you can optimise a database so it can move from 16 vCPUs to 8 vCPUs then that alone saves $32K annually. This is ignoring ancillary costs such as the second DR instance, etc...
- xupybd 4y agoSure that makes a lot of sense, I'm sorry for my bad assumptions, but that drives my point home even more. The problem is not related directly to your performance on the hardware. It's an additional cost from the business environment. License costs can drastically alter where your efforts are best spent. I'd imagine there are times where you might be better off pulling huge chunks of data out of the database to process on machines that don't have such a big license cost. CPU cycles are cheap, SQL Server licenses are extortionately expensive. While the costs are tied to the server they run on if you can offload to a different CPU not tied to that license model you can still take advantage of the low cost of CPU cycles.
- jiggawatts 4y ago> CPU cycles are cheap But people aren't. Any code that "makes people wait" is wasting people's time. The only way to make code take less time is to optimise it, because capacity != latency. You can't get a 20 THz processor. You can buy more capacity, but you can't buy more speed! At FAANG scale, it's common to hire "top" developers at hugely expensive annual total comp to tune stdlib code like "string" for just 1-2% efficiency gains because at their scale that might be 1,000 to 10,000 fewer servers. At a small scale, budgets are tight. At "enterprise" scale, staffing (user) costs are high, and license costs are high. I can't think of a typical business scenario where compute and/or associated per-core-licensing costs can be blindly disregarded with a flippant statement like "developers are expensive and infrastructure is cheap".