4 ms·
Valve is a games company. They probably already had a stable of allocators and were used to that kind of programming. Also the Windows malloc was much slower in
by mastax 8y ago
Valve is a games company. They probably already had a stable of allocators and were used to that kind of programming. Also the Windows malloc was much slower in 2003 IIRC.
- tejasmanohar 8y agoI'm guessing it's more this. I can't imagine the Steam app demands that high performance.
- kbenson 8y agoWell, since steam is in the background during all the games launched from it, often allows a special video overlay to browse community features while the game is running, supports chat, has an embedded browser, and can be used as an operating system overlay so you don't even have to use the OS for most things (big picture mode, for dedicated use and control with a game controller), I can imagine they probably want to make sure whatever allocator and reclamation scheme they are using has very low and predictable latency. The last thing they want to have to deal with is people reporting how running the game through steam costs a non-negligible amount of performance, or causes weird occasional lags/stalls while playing. In that respect, it's an extremely high performance application, in that it needs to be nigh unnoticeable to the type of people that overclock systems, push their graphics cards to their limits, and play games with FPS counters always showing in the corner. In that respect, it may be a textbook case of an application where you want a very specific memory allocation scheme that falls within very strict performance guidelines.
- baud147258 8y agoIn addition to the community features while the game is running, the Steam client has to support the screenshot and broadcast functionnalities
- Something1234 8y agoIt already has a large number of performance issues. The store is slow to open, and it's slow to switch to my library. Even slower to view my inventory.
- bpye 8y agoValve uses their own tier0 and tier1 libraries in both the Source Engine and Steam, they implement their own standard library like functions and I believe it's where the memory allocator is too. tier1 source is available [0] whilst I don't think tier0 has ever been made public, though it's headers are [1], if you look hard enough you can find the complete source code for Source 2007 though which will include tier0. [0] - https://github.com/ValveSoftware/source-sdk-2013/tree/master/sp/src/tier1 https://github.com/ValveSoftware/source-sdk-2013/tree/master... [1] - https://github.com/ValveSoftware/source-sdk-2013/tree/master/sp/src/public/tier0 https://github.com/ValveSoftware/source-sdk-2013/tree/master...