Advertisement

Dissidence between program leader and me, what should I do?

Started by April 27, 2011 03:04 AM
4 comments, last by inavat 13 years, 7 months ago
I've been an MMORPG programmer for two years. I have some experiences on limited platforms like cell phones, so I've got a strong awareness of memory optimization. But the programs of my current company eat a lot of memory, neither server side fellows nor client side ones do not care about this matter, maybe spoiled by the memory industry growth. I've reported this issue to our program leader but he had nothing but scorn of my ideas, and he told me that we should do the client memory optimization when the project is almost releasing, and the server side memory occupation is not a problem at all, memory chips are cheap thus we could plug more if it's not enough. I'm really distressed about this parlance. We may waste memory everywhere if the leader don't advocate this optimization.
This problem is a problem indeed in our released project that it caused low server FPS and client lag. My project is a still developing one. What should I do? Any suggestions is appreciated.
Palatin,
You have expressed your opinion. I suggest that you document your concerns. What do you think will probably go wrong because of this disregard of memory optimization? What concrete things can be done to prevent those problems? For now, you are not in a position to do very much. But when you see things starting to go wrong (and you had already predicted these things before) you can again bring up your concerns, present your predictions and your solutions. If you are told to be quiet again, then I recommend you do. If you find the situation intolerable, you can always quit. But I recommend you know where that line is, before you cross it.
Good luck

-- Tom Sloper -- sloperama.com

Advertisement
You are an engineer - Measure. Concrete data is far more convincing than vague concerns.

What you should focus on is the server's response time - this is what the player will feel - so data about this is what you want to confront your manager with. You benchmark the latency, and then you must prove that the easiest way to improve the latency is to be more economical with memory. You should be able to demonstrate that the server's response time is directly memory related, e.g. tied to something like thrashing virtual memory and/or having a working set much larger than the processor cache causing excessive cache misses. You would need to eliminate other factors such as the network and database as having a potentially bigger impact on the response time.

This also assumes that the latency problems would occur on your production system. If you are testing the server on a less powerful machine, then the problems could disappear on the actual hardware you'll run it on. Maybe this is your managers point?

Most commercial groups don't save memory for the sake of saving memory. They save it when not doing so causes problems. Prove to them that it is worth doing. If you can't, then your manager is correct and it is not worth doing.
You also have to realize that commercial games are about making money first and foremost. A 'good design' is often way down the list. If its only going to cost them a couple of thousand to put more RAM in the servers versus 20 thousand to rewrite the game to be more memory efficient its a no brainer to management they opt for extra RAM.

Are you sure there are going to be memory issues in the future or are you just assuming there is going to be a problem because they aren't accounting for every byte? Realistically the best you can do is document everything that you think is a problem and a cheap easy way to fix it. If nothing comes of that then there isn't really much you can do. Look on the bright side, if you are right you got job security as the issues will need to be patched. It also might be that they know it might be a problem but they have a schedule to complete and just have to push through it as best they can so the game can be released.

If its really that big of an issue you might just look for another job, chances are things like this won't improve anytime soon.

I've been an MMORPG programmer for two years. I have some experiences on limited platforms like cell phones, so I've got a strong awareness of memory optimization. But the programs of my current company eat a lot of memory, neither server side fellows nor client side ones do not care about this matter, maybe spoiled by the memory industry growth. I've reported this issue to our program leader but he had nothing but scorn of my ideas, and he told me that we should do the client memory optimization when the project is almost releasing, and the server side memory occupation is not a problem at all, memory chips are cheap thus we could plug more if it's not enough. I'm really distressed about this parlance. We may waste memory everywhere if the leader don't advocate this optimization.
This problem is a problem indeed in our released project that it caused low server FPS and client lag. My project is a still developing one. What should I do? Any suggestions is appreciated.


Serverside memory use is mostly irrelevant as long as it doesn't cause response times to drop significantly(you still want good cache performance), as the program leader said, memory is cheap and easy to expand and thus isn't a primary concern, in fact if using more memory allows you to reduce the use of harder to expand resources you should do it. (Memory is one of the cheapest and easiest resources to expand on a server), Basically the only real concern is to keep the relevant data in the local memory (for NUMA systems access time to non local memory is higher than for local memory) so realistically you get a cap at around 32-64GB for local data (So everything that node deals with frequently has to fit within those limits)
[size="1"]I don't suffer from insanity, I'm enjoying every minute of it.
The voices in my head may not be real, but they have some good ideas!
It's impossible for us to tell whether you have a point and should be listened to or whether you're nitpicking. There are programmers out there who don't understand the idea that you don't need to optimize the hell out of everything.

"[color=#1C2837][size=2]We may waste memory everywhere if the leader don't advocate this optimization"
[color=#1C2837][size=2]

[color=#1C2837][size=2]So? Wasting memory isn't inherently bad. Sometimes wasting memory can be good, such as when it is a side-effect of a maintainable design that's easy to work with. Sometimes you just don't need the optimizations -- they wouldn't buy you anything.
[color=#1C2837][size=2]

[color=#1C2837][size=2]Memory is not like money in that the more you have of it the better. You need as much as you need. Any more than that is unnecessary.

This topic is closed to new replies.

Advertisement