When using a (external or local) SQL DB I would also cache the players' settings instead of just reading from the DB every time. You can store data in a structure like this:
PHP Code:
enum PlayerSettings
{
bool:PlayerSettings_InUse,
PlayerSettings_SomeVar,
String:PlayerSettings_SomeString[32],
Float:PlayerSettings_SomeFloat
}
new PlayerSettingCache[MAXPLAYERS + 1][PlayerSettings];
Then you can cache DB results in structures like these when players connect, and write it back to DB when they leave.
About benchmarking, SourceMod have a profiler, but it's a alpha version. It did work fine when I tested it though:
http://wiki.alliedmods.net/SourceMod_Profiler
The profiler will measure the time spent in each event and forward. If you want to measure specific stuff you can use the profiler API in SourceMod:
http://docs.sourcemod.net/api/index....oad=file&id=18
__________________