void SystemSettings::allocationTest() { auto module = InviwoApplication::getPtr()->getModuleByType<InviwoCore>(); if (!module) return; auto sysInfo = getTypeFromVector<SystemCapabilities>(module->getCapabilities()); if (sysInfo) { IntProperty* useRAMPercent = dynamic_cast<IntProperty*>(getPropertyByIdentifier("useRAMPercent")); glm::u64 memBytesAlloc = sysInfo->getAvailableMemory(); // In Bytes LogInfo("Maximum Available Memory is " << formatBytesToString(memBytesAlloc)); memBytesAlloc /= 100; // 1% of total available memory memBytesAlloc *= useRAMPercent->get(); //?% of total available memory try { allocTest_ = new glm::u32[static_cast<glm::u32>(memBytesAlloc / 4)]; LogInfo("Allocated " << formatBytesToString(memBytesAlloc) << ", which is " << useRAMPercent->get() << "% of available memory"); delete allocTest_; } catch (std::bad_alloc&) { LogError("Failed allocation of " << formatBytesToString(memBytesAlloc) << ", which is " << useRAMPercent->get() << "% of available memory"); } } }
void TestGetAvailableMemory() { GameProperties testGame; testGame = createGame(); testGame->totalMemory = 10; sput_fail_unless(getAvailableMemory(testGame) == 10,"Getting Memory"); free(testGame); }
void MainWindow::displayMemoryStatus() { QMessageBox msgBox; msgBox.setText("Διαθέσιμη μνήμη : " + QString::number(round(getAvailableMemory())) + " Megabyte\n" + "Μνήμη σε χρήση : " + QString::number(round(getUsedMemory())) + " Megabyte \n" + "Μέγιστη μνήμη : " + QString::number(memoryForMaryServer) + " Megabyte"); msgBox.setIcon( QMessageBox::Information ); msgBox.exec(); }
void sh_memusg(char* params){ int bytes = getBytesAllocated(); int avail = getAvailableMemory(); ttprint("Allocated "); ttprintInt(bytes); ttprint(" of "); ttprintInt(avail); ttprintln(" bytes"); }
void TestAddMemory() { GameProperties testGame; testGame = createGame(); addMemory(100); sput_fail_unless(getAvailableMemory() == 100,"Adding MEmory"); sput_fail_unless(addMemory(-100) == 0,"Adding Negative Memory"); free(testGame); }
void CreateGameTest() { GameProperties testGame; testGame = getGame(NULL); sput_fail_unless(getAvailableMemory() == 1000,"Initializing Memory"); //sput_fail_unless(getWave(testGame) == 3,"Initializing WaveNo"); sput_fail_unless(getTotalWaveNo() == 3,"Total Wave Number set to 3 from level file"); sput_fail_unless(getHealth(testGame) == 100,"Initializing Health"); }
void TestUseMemory() { GameProperties testGame; testGame = createGame(); testGame->totalMemory = 100; useMemory(testGame,50); sput_fail_unless(getAvailableMemory() == 50,"Subtracting Memory"); sput_fail_unless(useMemory(testGame,100) == 0,"Subtracting too much Memory"); free(testGame); }
void CreateGameTest() { GameProperties testGame; testGame = createGame(); sput_fail_if((createGame()) == NULL,"Creating Game"); sput_fail_unless(getAvailableMemory(testGame) == 0,"Initializing Memory"); sput_fail_unless(getWave(testGame) == 0,"Initializing WaveNo"); sput_fail_unless(getHealth(testGame) == 0,"Initializing Health"); free(testGame); }
void testCheckMem() { GameProperties testGame; testGame = getGame(NULL); setMemory(0); addMemory(10); sput_fail_unless(checkMem(10,testGame) == 1,"boundary Testing enough memory"); useMemory(testGame,10); sput_fail_unless(checkMem(50,testGame) == 0,"Testing not enough memory"); addMemory(100); sput_fail_unless(checkMem(100,testGame) == 1,"Testing enough memory"); setMemory(0); test_KillAnEnemy(); sput_fail_unless(getAvailableMemory() > 0, "Valid: More memory available after killing an enemy"); freeAllEnemies(); }
void MainWindow::startMaryServer() { double availableMemory; memoryForMaryServer = 0; maryServerProcess.close(); availableMemory = getAvailableMemory(); //if there is enough memory available we allocate it to mary server //otherwise we choose the default allocation if (availableMemory > MAX_MEMORY_FOR_MARY) //try to allocate 2Gb for mary server startMaryServerProcess(MAX_MEMORY_FOR_MARY); //if process has not started try with 1gb if (maryServerProcess.pid() == 0) { if (availableMemory > NORMAL_MEMORY_FOR_MARY) //try to allocate 1Gb for mary server startMaryServerProcess(NORMAL_MEMORY_FOR_MARY); } if (maryServerProcess.pid() == 0) //try to allocate 500mb for mary server startMaryServerProcess(MIN_MEMORY_FOR_MARY); //Not necessary anymore //Openmary.py now waits enough to connect with server //startNVDA(); //finally if process fails to start we display information if (maryServerProcess.pid() == 0) { memoryForMaryServer = 0; QMessageBox msgBox; msgBox.setText( QObject::tr("Emily cannot start.") ); msgBox.setIcon( QMessageBox::Critical ); msgBox.exec(); } }
void menuStatisticsDebug(uint8_t event) { TITLE(STR_MENUDEBUG); switch(event) { case EVT_KEY_LONG(KEY_ENTER): g_eeGeneral.mAhUsed = 0; g_eeGeneral.globalTimer = 0; eeDirty(EE_GENERAL); sessionTimer = 0; killEvents(event); AUDIO_KEYPAD_UP(); break; case EVT_KEY_FIRST(KEY_ENTER): #if defined(LUA) maxLuaInterval = 0; maxLuaDuration = 0; #endif maxMixerDuration = 0; AUDIO_KEYPAD_UP(); break; #if defined(DEBUG_TRACE_BUFFER) case EVT_KEY_FIRST(KEY_UP): pushMenu(menuTraceBuffer); return; #endif case EVT_KEY_FIRST(KEY_DOWN): chainMenu(menuStatisticsView); break; case EVT_KEY_FIRST(KEY_EXIT): chainMenu(menuMainView); break; } lcd_putsLeft(MENU_DEBUG_Y_FREE_RAM, "Free Mem"); lcd_outdezAtt(MENU_DEBUG_COL1_OFS, MENU_DEBUG_Y_FREE_RAM, getAvailableMemory(), LEFT); lcd_puts(lcdLastPos, MENU_DEBUG_Y_FREE_RAM, "b"); #if defined(LUA) lcd_putsLeft(MENU_DEBUG_Y_LUA, "Lua scripts"); lcd_putsAtt(MENU_DEBUG_COL1_OFS, MENU_DEBUG_Y_LUA+1, "[Duration]", SMLSIZE); lcd_outdezAtt(lcdLastPos, MENU_DEBUG_Y_LUA, 10*maxLuaDuration, LEFT); lcd_putsAtt(lcdLastPos+2, MENU_DEBUG_Y_LUA+1, "[Interval]", SMLSIZE); lcd_outdezAtt(lcdLastPos, MENU_DEBUG_Y_LUA, 10*maxLuaInterval, LEFT); #endif lcd_putsLeft(MENU_DEBUG_Y_MIXMAX, STR_TMIXMAXMS); lcd_outdezAtt(MENU_DEBUG_COL1_OFS, MENU_DEBUG_Y_MIXMAX, DURATION_MS_PREC2(maxMixerDuration), PREC2|LEFT); lcd_puts(lcdLastPos, MENU_DEBUG_Y_MIXMAX, "ms"); lcd_putsLeft(MENU_DEBUG_Y_RTOS, STR_FREESTACKMINB); lcd_putsAtt(MENU_DEBUG_COL1_OFS, MENU_DEBUG_Y_RTOS+1, "[M]", SMLSIZE); lcd_outdezAtt(lcdLastPos, MENU_DEBUG_Y_RTOS, stack_free(0), UNSIGN|LEFT); lcd_putsAtt(lcdLastPos+2, MENU_DEBUG_Y_RTOS+1, "[X]", SMLSIZE); lcd_outdezAtt(lcdLastPos, MENU_DEBUG_Y_RTOS, stack_free(1), UNSIGN|LEFT); lcd_putsAtt(lcdLastPos+2, MENU_DEBUG_Y_RTOS+1, "[A]", SMLSIZE); lcd_outdezAtt(lcdLastPos, MENU_DEBUG_Y_RTOS, stack_free(2), UNSIGN|LEFT); lcd_putsAtt(lcdLastPos+2, MENU_DEBUG_Y_RTOS+1, "[I]", SMLSIZE); lcd_outdezAtt(lcdLastPos, MENU_DEBUG_Y_RTOS, stack_free(255), UNSIGN|LEFT); lcd_puts(3*FW, 7*FH+1, STR_MENUTORESET); lcd_status_line(); }
int checkMem(int needed, GameProperties Game) { if(needed > getAvailableMemory(Game)) { return 0; } return 1; }
int getTotalMemory() { return(getAvailableMemory(getGame(NULL))); }
void menuStatisticsDebug(uint8_t event) { TITLE(STR_MENUDEBUG); switch(event) { #if defined(CPUARM) case EVT_KEY_LONG(KEY_ENTER): g_eeGeneral.mAhUsed = 0; g_eeGeneral.globalTimer = 0; eeDirty(EE_GENERAL); #if defined(PCBSKY9X) Current_used = 0; #endif sessionTimer = 0; killEvents(event); AUDIO_KEYPAD_UP(); break; #endif case EVT_KEY_FIRST(KEY_ENTER): #if !defined(CPUARM) g_tmr1Latency_min = 0xff; g_tmr1Latency_max = 0; #endif #if defined(LUA) maxLuaInterval = 0; maxLuaDuration = 0; #endif maxMixerDuration = 0; AUDIO_KEYPAD_UP(); break; case EVT_KEY_FIRST(KEY_DOWN): chainMenu(menuStatisticsView); return; case EVT_KEY_FIRST(KEY_EXIT): chainMenu(menuMainView); return; } #if defined(PCBSKY9X) if ((ResetReason&RSTC_SR_RSTTYP) == (2<<8)) { lcd_puts(LCD_W-8*FW, 0*FH, "WATCHDOG"); } else if (unexpectedShutdown) { lcd_puts(LCD_W-13*FW, 0*FH, "UNEXP.SHTDOWN"); } #endif #if defined(PCBSKY9X) && !defined(REVA) // current lcd_putsLeft(MENU_DEBUG_Y_CURRENT, STR_CPU_CURRENT); putsTelemetryValue(MENU_DEBUG_COL1_OFS, MENU_DEBUG_Y_CURRENT, getCurrent(), UNIT_MILLIAMPS, LEFT); uint32_t current_scale = 488 + g_eeGeneral.currentCalib; lcd_putc(MENU_DEBUG_COL2_OFS, MENU_DEBUG_Y_CURRENT, '>'); putsTelemetryValue(MENU_DEBUG_COL2_OFS+FW+1, MENU_DEBUG_Y_CURRENT, Current_max*10*current_scale/8192, UNIT_RAW, LEFT); // consumption lcd_putsLeft(MENU_DEBUG_Y_MAH, STR_CPU_MAH); putsTelemetryValue(MENU_DEBUG_COL1_OFS, MENU_DEBUG_Y_MAH, g_eeGeneral.mAhUsed + Current_used*current_scale/8192/36, UNIT_MAH, LEFT|PREC1); #endif #if defined(PCBSKY9X) lcd_putsLeft(MENU_DEBUG_Y_CPU_TEMP, STR_CPU_TEMP); putsTelemetryValue(MENU_DEBUG_COL1_OFS, MENU_DEBUG_Y_CPU_TEMP, getTemperature(), UNIT_TEMPERATURE, LEFT); lcd_putc(MENU_DEBUG_COL2_OFS, MENU_DEBUG_Y_CPU_TEMP, '>'); putsTelemetryValue(MENU_DEBUG_COL2_OFS+FW+1, MENU_DEBUG_Y_CPU_TEMP, maxTemperature+g_eeGeneral.temperatureCalib, UNIT_TEMPERATURE, LEFT); #endif #if defined(COPROCESSOR) lcd_putsLeft(MENU_DEBUG_Y_COPROC, STR_COPROC_TEMP); if (Coproc_read==0) { lcd_putsAtt(MENU_DEBUG_COL1_OFS, MENU_DEBUG_Y_COPROC, PSTR("Co Proc NACK"),INVERS); } else if (Coproc_read==0x81) { lcd_putsAtt(MENU_DEBUG_COL1_OFS, MENU_DEBUG_Y_COPROC, PSTR("Inst.TinyApp"),INVERS); } else if (Coproc_read<3) { lcd_putsAtt(MENU_DEBUG_COL1_OFS, MENU_DEBUG_Y_COPROC, PSTR("Upgr.TinyApp"),INVERS); } else { putsTelemetryValue(MENU_DEBUG_COL1_OFS, MENU_DEBUG_Y_COPROC, Coproc_temp, UNIT_TEMPERATURE, LEFT); putsTelemetryValue(MENU_DEBUG_COL2_OFS, MENU_DEBUG_Y_COPROC, Coproc_maxtemp, UNIT_TEMPERATURE, LEFT); } #endif #if defined(PCBTARANIS) && !defined(SIMU) lcd_putsLeft(MENU_DEBUG_Y_FREE_RAM, "Free Mem"); lcd_outdezAtt(MENU_DEBUG_COL1_OFS, MENU_DEBUG_Y_FREE_RAM, getAvailableMemory(), LEFT); lcd_puts(lcdLastPos, MENU_DEBUG_Y_FREE_RAM, "b"); #endif #if defined(LUA) lcd_putsLeft(MENU_DEBUG_Y_LUA, "Lua scripts"); lcd_putsAtt(MENU_DEBUG_COL1_OFS, MENU_DEBUG_Y_LUA+1, "[Duration]", SMLSIZE); lcd_outdezAtt(lcdLastPos, MENU_DEBUG_Y_LUA, 10*maxLuaDuration, LEFT); lcd_putsAtt(lcdLastPos+2, MENU_DEBUG_Y_LUA+1, "[Interval]", SMLSIZE); lcd_outdezAtt(lcdLastPos, MENU_DEBUG_Y_LUA, 10*maxLuaInterval, LEFT); #endif #if defined(CPUARM) lcd_putsLeft(MENU_DEBUG_Y_MIXMAX, STR_TMIXMAXMS); lcd_outdezAtt(MENU_DEBUG_COL1_OFS, MENU_DEBUG_Y_MIXMAX, DURATION_MS_PREC2(maxMixerDuration), PREC2|LEFT); lcd_puts(lcdLastPos, MENU_DEBUG_Y_MIXMAX, "ms"); #endif #if 0 lcd_putsLeft(MENU_DEBUG_Y_STACK, STR_FREESTACKMINB); lcd_outdezAtt(MENU_DEBUG_COL1_OFS, MENU_DEBUG_Y_STACK, stack_free(255), UNSIGN|LEFT); lcd_puts(lcdLastPos, MENU_DEBUG_Y_STACK, "b"); #endif #if defined(PCBTARANIS) lcd_putsLeft(MENU_DEBUG_Y_RTOS, STR_FREESTACKMINB); lcd_putsAtt(MENU_DEBUG_COL1_OFS, MENU_DEBUG_Y_RTOS+1, "[Main]", SMLSIZE); lcd_outdezAtt(lcdLastPos, MENU_DEBUG_Y_RTOS, stack_free(0), UNSIGN|LEFT); lcd_putsAtt(lcdLastPos+2, MENU_DEBUG_Y_RTOS+1, "[Mix]", SMLSIZE); lcd_outdezAtt(lcdLastPos, MENU_DEBUG_Y_RTOS, stack_free(1), UNSIGN|LEFT); lcd_putsAtt(lcdLastPos+2, MENU_DEBUG_Y_RTOS+1, "[Audio]", SMLSIZE); lcd_outdezAtt(lcdLastPos, MENU_DEBUG_Y_RTOS, stack_free(2), UNSIGN|LEFT); #endif #if defined(PCBSKY9X) lcd_putsLeft(MENU_DEBUG_Y_RTOS, STR_FREESTACKMINB); lcd_outdezAtt(MENU_DEBUG_COL1_OFS, MENU_DEBUG_Y_RTOS, stack_free(0), UNSIGN|LEFT); lcd_puts(lcdLastPos, MENU_DEBUG_Y_RTOS, "/"); lcd_outdezAtt(lcdLastPos, MENU_DEBUG_Y_RTOS, stack_free(1), UNSIGN|LEFT); lcd_puts(lcdLastPos, MENU_DEBUG_Y_RTOS, "/"); lcd_outdezAtt(lcdLastPos, MENU_DEBUG_Y_RTOS, stack_free(2), UNSIGN|LEFT); #endif #if !defined(CPUARM) lcd_putsLeft(1*FH, STR_TMR1LATMAXUS); lcd_outdez8(MENU_DEBUG_COL1_OFS , 1*FH, g_tmr1Latency_max/2 ); lcd_putsLeft(2*FH, STR_TMR1LATMINUS); lcd_outdez8(MENU_DEBUG_COL1_OFS , 2*FH, g_tmr1Latency_min/2 ); lcd_putsLeft(3*FH, STR_TMR1JITTERUS); lcd_outdez8(MENU_DEBUG_COL1_OFS , 3*FH, (g_tmr1Latency_max - g_tmr1Latency_min) /2 ); lcd_putsLeft(4*FH, STR_TMIXMAXMS); lcd_outdezAtt(MENU_DEBUG_COL1_OFS, 4*FH, DURATION_MS_PREC2(maxMixerDuration), PREC2); lcd_putsLeft(5*FH, STR_FREESTACKMINB); lcd_outdezAtt(14*FW, 5*FH, stack_free(), UNSIGN) ; #endif lcd_puts(3*FW, 7*FH+1, STR_MENUTORESET); lcd_status_line(); }