forked from Mirrorlandia_minetest/minetest
master #7
@ -108,13 +108,6 @@ bool ClientLauncher::run(GameStartData &start_data, const Settings &cmd_args)
|
||||
return false;
|
||||
}
|
||||
|
||||
// Speed tests (done after irrlicht is loaded to get timer)
|
||||
if (cmd_args.getFlag("speedtests")) {
|
||||
dstream << "Running speed tests" << std::endl;
|
||||
speed_tests();
|
||||
return true;
|
||||
}
|
||||
|
||||
if (m_rendering_engine->get_video_driver() == NULL) {
|
||||
errorstream << "Could not initialize video driver." << std::endl;
|
||||
return false;
|
||||
@ -394,7 +387,7 @@ bool ClientLauncher::launch_game(std::string &error_message,
|
||||
if (cmd_args.exists("password-file")) {
|
||||
std::ifstream passfile(cmd_args.get("password-file"));
|
||||
if (passfile.good()) {
|
||||
getline(passfile, start_data.password);
|
||||
std::getline(passfile, start_data.password);
|
||||
} else {
|
||||
error_message = gettext("Provided password file "
|
||||
"failed to open: ")
|
||||
@ -451,8 +444,6 @@ bool ClientLauncher::launch_game(std::string &error_message,
|
||||
|
||||
int world_index = menudata.selected_world;
|
||||
if (world_index >= 0 && world_index < (int)worldspecs.size()) {
|
||||
g_settings->set("selected_world_path",
|
||||
worldspecs[world_index].path);
|
||||
start_data.world_spec = worldspecs[world_index];
|
||||
}
|
||||
|
||||
@ -524,15 +515,7 @@ bool ClientLauncher::launch_game(std::string &error_message,
|
||||
return false;
|
||||
}
|
||||
|
||||
if (porting::signal_handler_killstatus())
|
||||
return true;
|
||||
|
||||
if (!start_data.game_spec.isValid()) {
|
||||
error_message = gettext("Invalid gamespec.");
|
||||
error_message += " (world.gameid=" + worldspec.gameid + ")";
|
||||
errorstream << error_message << std::endl;
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
start_data.world_path = start_data.world_spec.path;
|
||||
@ -580,104 +563,3 @@ void ClientLauncher::main_menu(MainMenuData *menudata)
|
||||
if (!g_settings_path.empty())
|
||||
g_settings->updateConfigFile(g_settings_path.c_str());
|
||||
}
|
||||
|
||||
void ClientLauncher::speed_tests()
|
||||
{
|
||||
// volatile to avoid some potential compiler optimisations
|
||||
volatile static s16 temp16;
|
||||
volatile static f32 tempf;
|
||||
// Silence compiler warning
|
||||
(void)temp16;
|
||||
static v3f tempv3f1;
|
||||
static v3f tempv3f2;
|
||||
static std::string tempstring;
|
||||
static std::string tempstring2;
|
||||
|
||||
tempv3f1 = v3f();
|
||||
tempv3f2 = v3f();
|
||||
tempstring.clear();
|
||||
tempstring2.clear();
|
||||
|
||||
{
|
||||
infostream << "The following test should take around 20ms." << std::endl;
|
||||
TimeTaker timer("Testing std::string speed");
|
||||
const u32 jj = 10000;
|
||||
for (u32 j = 0; j < jj; j++) {
|
||||
tempstring.clear();
|
||||
tempstring2.clear();
|
||||
const u32 ii = 10;
|
||||
for (u32 i = 0; i < ii; i++) {
|
||||
tempstring2 += "asd";
|
||||
}
|
||||
for (u32 i = 0; i < ii+1; i++) {
|
||||
tempstring += "asd";
|
||||
if (tempstring == tempstring2)
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
infostream << "All of the following tests should take around 100ms each."
|
||||
<< std::endl;
|
||||
|
||||
{
|
||||
TimeTaker timer("Testing floating-point conversion speed");
|
||||
tempf = 0.001;
|
||||
for (u32 i = 0; i < 4000000; i++) {
|
||||
temp16 += tempf;
|
||||
tempf += 0.001;
|
||||
}
|
||||
}
|
||||
|
||||
{
|
||||
TimeTaker timer("Testing floating-point vector speed");
|
||||
|
||||
tempv3f1 = v3f(1, 2, 3);
|
||||
tempv3f2 = v3f(4, 5, 6);
|
||||
for (u32 i = 0; i < 10000000; i++) {
|
||||
tempf += tempv3f1.dotProduct(tempv3f2);
|
||||
tempv3f2 += v3f(7, 8, 9);
|
||||
}
|
||||
}
|
||||
|
||||
{
|
||||
TimeTaker timer("Testing std::map speed");
|
||||
|
||||
std::map<v2s16, f32> map1;
|
||||
tempf = -324;
|
||||
const s16 ii = 300;
|
||||
for (s16 y = 0; y < ii; y++) {
|
||||
for (s16 x = 0; x < ii; x++) {
|
||||
map1[v2s16(x, y)] = tempf;
|
||||
tempf += 1;
|
||||
}
|
||||
}
|
||||
for (s16 y = ii - 1; y >= 0; y--) {
|
||||
for (s16 x = 0; x < ii; x++) {
|
||||
tempf = map1[v2s16(x, y)];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
{
|
||||
infostream << "Around 5000/ms should do well here." << std::endl;
|
||||
TimeTaker timer("Testing mutex speed");
|
||||
|
||||
std::mutex m;
|
||||
u32 n = 0;
|
||||
u32 i = 0;
|
||||
do {
|
||||
n += 10000;
|
||||
for (; i < n; i++) {
|
||||
m.lock();
|
||||
m.unlock();
|
||||
}
|
||||
}
|
||||
// Do at least 10ms
|
||||
while(timer.getTimerTime() < 10);
|
||||
|
||||
u32 dtime = timer.stop();
|
||||
u32 per_ms = n / dtime;
|
||||
infostream << "Done. " << dtime << "ms, " << per_ms << "/ms" << std::endl;
|
||||
}
|
||||
}
|
||||
|
@ -44,8 +44,6 @@ private:
|
||||
|
||||
void main_menu(MainMenuData *menudata);
|
||||
|
||||
void speed_tests();
|
||||
|
||||
bool skip_main_menu = false;
|
||||
bool random_input = false;
|
||||
RenderingEngine *m_rendering_engine = nullptr;
|
||||
|
@ -379,8 +379,6 @@ static void set_allowed_options(OptionList *allowed_options)
|
||||
allowed_options->insert(std::make_pair("recompress", ValueSpec(VALUETYPE_FLAG,
|
||||
_("Recompress the blocks of the given map database."))));
|
||||
#ifndef SERVER
|
||||
allowed_options->insert(std::make_pair("speedtests", ValueSpec(VALUETYPE_FLAG,
|
||||
_("Run speed tests"))));
|
||||
allowed_options->insert(std::make_pair("address", ValueSpec(VALUETYPE_STRING,
|
||||
_("Address to connect to. ('' = local game)"))));
|
||||
allowed_options->insert(std::make_pair("random-input", ValueSpec(VALUETYPE_FLAG,
|
||||
|
Loading…
Reference in New Issue
Block a user