/
BirdLeon
/
ROBLOX2016
Обзор
Документация
Войти
/
BirdLeon
/
ROBLOX2016
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
App.UnitTest/MemoryTests.cpp
62 строки
2 KB
PatoFlamejanteTV
full source code
19 дек 2024, 19:11
19 дек 2024, 19:11
05db15d
Код
Авторство
О чём код?
#ifndef _DEBUG #include <boost/test/unit_test.hpp> #include "rbx/test/Performance.h" #include "rbx/test/DataModelFixture.h" #include "script/ScriptContext.h" #include "v8datamodel/workspace.h" #include "v8datamodel/modelinstance.h" #include "V8DataModel/BasicPartInstance.h" using namespace RBX; BOOST_AUTO_TEST_SUITE(MemoryTests) BOOST_FIXTURE_TEST_CASE(EmptyDatamodel, RBX::Test::Memory) { BOOST_TEST_MESSAGE("Memory: " << GetBytes() << "\tNo DataModel"); DataModelFixture dm; BOOST_TEST_MESSAGE("Memory: " << GetBytes() << "\tEmpty DataModel"); } BOOST_FIXTURE_TEST_CASE(Script, RBX::Test::Memory) { BOOST_TEST_MESSAGE("Memory: " << GetBytes() << "\tNo DataModel"); DataModelFixture dm; BOOST_TEST_MESSAGE("Memory: " << GetBytes() << "\tEmpty DataModel"); { RBX::DataModel::LegacyLock lock(dm.dataModel, RBX::DataModelJob::Write); shared_ptr<Instance> model = RBX::Creatable<RBX::Instance>::create<RBX::ModelInstance>(); //model->setParent(dm.dataModel->getWorkspace()); BOOST_TEST_MESSAGE("Memory: " << GetBytes() << "\t" << 0 << " bricks"); long start = GetBytes(); int count = 0; BOOST_TEST_MESSAGE("Memory (MB)\tbricks\tB/brick"); for (int i=1; i<=10; ++i) { for (int j=0; j<5000; ++j) { shared_ptr<PartInstance> part = RBX::Creatable<RBX::Instance>::create<RBX::PartInstance>(); part->setCoordinateFrame(RBX::CoordinateFrame(G3D::Vector3(4*i, 4*j, 0))); part->setParent(model.get()); count++; } BOOST_TEST_MESSAGE("Memory: " << GetBytes()/1000000 << "\t" << count << "\t" << (GetBytes()-start)/count); } model->setParent(NULL); model.reset(); BOOST_TEST_MESSAGE("Memory: " << GetBytes() << "\tremoved bricks"); } } BOOST_AUTO_TEST_SUITE_END() #endif