Quote:
Originally Posted by paxemuman
Hmm you cant read ? read bar when server is loading.I load whole database to ram memory , i am preparing space for 30.000 mobs , i am preparing space for 25.000 accounts and alot more.I am using 5 % cpu with 30.000 mobs walking on the map.I se you have no idea about performance , my server are not even using a hard disc (only in inspection time i save data on disc).My system its faster than fastest mysql database, and its designed for normal home pc.I decided to respond you because i am mad when i must read that shit about my emulator.
|
So you admit all you did was google "how to read access files in VB" then store everything in a global object that persists through the program's life? Nice. That's not programming btw, and that's not scalable.
30,000 mobs is nothing. If your system can't run with 5,000,000+ mobs running full AI with proper grouping on less than 1% of one single core (you're not doing collision detection), you're a fucking noob.
You're not doing collision detection. I don't blame you for this; you wouldn't have the first clue how to parse navmeshes and then calculate collision points.
Also, not using disks is one thing, now tell me how you're maximizing concurrency and minimizing context switches. Do you even know what a context switch is? How're you removing bottlenecks that come from blocking calls? Blocking calls kill performance on any kind of I/O, and networking calls are 100++++x slower than disk I/O calls. So you have this irrational fear of writing to disk (some of us have SSDs that have no seek time latency, btw) but you're jumping on the blocking networking call bandwagon for what? And if you've got async IO, how are you tracking the buffers and storing them in a manner that any thread can access them without creating a huge bottleneck? On top of that, are you processing them in an 'on io complete' callback which in itself produces a bottleneck because you must acquire a lock on some kind of storage array to mark blocks re-usable and not bound to I/O? Also, are you pooling block objects for I/O so that people don't just need big 32K blocks of memory allocated to them for writing (most packets are < 64 bytes, so blocks any bigger are going to result in massive wastes). How are you detecting leaks from these factories/sinks. Are you avoiding library new/delete facilities because they invoke a heap manager to allocate a block which is FANTASTICALLY slow, slower than a disk i/o on average.
Oh wait.. you're not doing any of that.
1. You're using VB6, you don't get that level of control in VB6.
2. You have NO idea what you're talking about.
3. You don't even know what the terms 'performance' and 'optimization' mean.
Quote:
Originally Posted by paxemuman
Its physical impossible to load that amount of data and takes only 40mb of ram, maybe you just not store it in memory but dynamic using ?.
Next thing i am operating only inside ram memory , i am not load from database when server is running, i am load only when server start up thats why there is no faster system , fastest mysql database make same thing, just store all data in ram memory.So if i dont use hard drive why i should waste my time for mysql database?.
|
Oh that's nice. But features that are conducive to complex SQL queries, actually made incredibly simple by means of a simple string sent to a network-local dedicated database server are not present in SEA. Why? Because coding it out by hand is a pain in the ass and in some cases, not trivial.
Just admit what everyone here knows. You don't know even the basics of writing even poor software. You've modified an SREMU derivative and passed it off as your own. Pathetic, honestly.