You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
81 lines
2.5 KiB
81 lines
2.5 KiB
using System;
|
|
using System.Diagnostics;
|
|
using System.Threading;
|
|
using System.Threading.Tasks;
|
|
using Sog;
|
|
using Sog.Log;
|
|
|
|
namespace MysqlHandling
|
|
{
|
|
class Program
|
|
{
|
|
static void Main(string[] args)
|
|
{
|
|
AppTime.InitTimeZone();
|
|
var apptime = new AppTime();
|
|
apptime.UpdateTime();
|
|
|
|
string path = "../cfg/config.json";
|
|
// windows vs调试时, 可以传入cfg路径, 必须是第一个
|
|
if (args.Length > 0)
|
|
{
|
|
path = args[0];
|
|
}
|
|
var tmp = new Config(path);
|
|
|
|
string logPath = "../log";
|
|
string logName = "testLog";
|
|
TraceLog.SetLogPathName(logPath, logName);
|
|
|
|
// 关闭ServerApp中的TraceLog, 避免IO影响
|
|
TraceLog.SetLogLevel(Config.m_DBConfig.traceLogLevel);
|
|
|
|
|
|
EasyLog.CreatLogFile(logPath, "perform.log");
|
|
EasyLog.WriteInfo("========================= test start =========================");
|
|
|
|
|
|
// 固定10个线程, 测试程序简单点
|
|
int threadNum = 10;
|
|
int testCountPerThread = Config.m_DBConfig.testCount / threadNum;
|
|
|
|
GamePlayerManager[] mgrList = new GamePlayerManager[threadNum];
|
|
Task[] taskList = new Task[threadNum];
|
|
for (int i = 0; i < threadNum; i++)
|
|
{
|
|
mgrList[i] = new GamePlayerManager(testCountPerThread, 1, i + 1);
|
|
taskList[i] = new Task(mgrList[i].TestAll);
|
|
}
|
|
|
|
try
|
|
{
|
|
for (int i = 0; i < threadNum; i++)
|
|
{
|
|
taskList[i].Start();
|
|
}
|
|
|
|
Task.WaitAll(taskList);
|
|
|
|
long insert = 0, get = 0, update = 0, delete = 0;
|
|
for (int i = 0; i < threadNum; i++)
|
|
{
|
|
insert += mgrList[i].m_insertMs;
|
|
get += mgrList[i].m_getMs;
|
|
update += mgrList[i].m_updteMs;
|
|
delete += mgrList[i].m_deleteMs;
|
|
}
|
|
insert /= threadNum;
|
|
get /= threadNum;
|
|
update /= threadNum;
|
|
delete /= threadNum;
|
|
string db = Config.m_DBConfig.dbtype == 0 ? "mysql" : "mongo";
|
|
EasyLog.WriteInfo($"{db} thread {threadNum} avg testCount {testCountPerThread} insert {insert} get {get} update {update} delete {delete}");
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
Console.WriteLine(ex);
|
|
}
|
|
}
|
|
|
|
}
|
|
}
|
|
|