| ▲ | CamperBob2 2 hours ago |
| Sheesh. Can something this complicated ever truly be said to work? |
|
| ▲ | direwolf20 6 minutes ago | parent | next [-] |
| Yes, if you're careful. Actually careful, not pretend careful. Which is pretty normal in C and C++. |
|
| ▲ | adrr 11 minutes ago | parent | prev | next [-] |
| OS kernel runqueue is using a spinlock to schedule everything. So it works. Should you ever use a spinlock in application code? No. Let the OS via the synchronization primitives in whatever language your app is in. |
|
| ▲ | bluGill 2 hours ago | parent | prev | next [-] |
| You can limit yourself to the performance of a 1mhz 6502 with no OS if you don't like it. Even MSDos on a 8086 with 640K ram allows for things that require complexity of this type (not spin locks, but the tricks needed to make "terminate stay resident" work are evil in a similar way) |
| |
| ▲ | yjftsjthsd-h 2 hours ago | parent [-] | | I don't think that's fair. You can go fast, just not more than one task at a time. | | |
| ▲ | bluGill 2 hours ago | parent [-] | | Modern CPUs (since around 2000) go faster in large part because they have multiple cores that can do more than one thing in a time. If your program needs to go faster using more cores is often your best answer and then you will need these tricks. (SIMD or the GPU are also common answers that might or might not be better for your problem) | | |
| ▲ | yjftsjthsd-h an hour ago | parent [-] | | Modern CPUs can do 4-5 GHz singled threaded. (Sometimes you can even get a higher clock speed by disabling other cores.) This somewhat outpaces "a 1mhz 6502" even without parallelization. | | |
| ▲ | bluGill an hour ago | parent [-] | | They can, but nobody runs a single process on such CPUs. They run some form of OS which implements spinlock, mutexes, and all these other complex things. I suppose someplace someone is running an embedded system without an OS on such a processor - but I'd expect they are still using extra cores and so have all of the above tricks someplace. |
|
|
|
|
|
| ▲ | nh23423fefe 2 hours ago | parent | prev [-] |
| Isn't it the opposite? The complication is evidence of function. The simple code doesn't work. |
| |
| ▲ | kelnos an hour ago | parent [-] | | That assertion feels suspiciously like a logical fallacy. | | |
| ▲ | maxbond an hour ago | parent [-] | | Not really. If the solution has less complexity than is inherent in the problem, it can't possibly work. If the solution has complexity equal to or greater than the complexity inherent in the problem, it may work. So if you see complex code handling many different edge cases, you can take that as an indicator the author understood the problem. That doesn't mean they do understand or that the solution does work; only that you have more confidence than you did initially. It's a weak signal but the reasoning is sound. | | |
| ▲ | pyrolistical 6 minutes ago | parent [-] | | Everything should be made as simple as possible, but not simpler. Code has a minimum complexity to solve the problem |
|
|
|