cocoaTouch/otherSrc/CommodityFunctions.m
changeset 3490 016b3172b645
parent 3479 972ae3ec178a
child 3495 a6b4f351d400
--- a/cocoaTouch/otherSrc/CommodityFunctions.m	Tue Jun 01 19:33:45 2010 +0000
+++ b/cocoaTouch/otherSrc/CommodityFunctions.m	Wed Jun 02 13:52:23 2010 +0000
@@ -8,6 +8,8 @@
 
 #import "CommodityFunctions.h"
 #import "SDL_uikitappdelegate.h"
+#import <mach/mach.h>
+#import <mach/mach_host.h>
 
 void createTeamNamed (NSString *nameWithoutExt) {
     NSString *teamsDirectory = TEAMS_DIRECTORY();
@@ -110,6 +112,27 @@
     [alert show];
     [alert release];
 }
+
+// by http://landonf.bikemonkey.org/code/iphone/Determining_Available_Memory.20081203.html
+void print_free_memory () {
+    mach_port_t host_port;
+    mach_msg_type_number_t host_size;
+    vm_size_t pagesize;
     
-
-
+    host_port = mach_host_self();
+    host_size = sizeof(vm_statistics_data_t) / sizeof(integer_t);
+    host_page_size(host_port, &pagesize);        
+ 
+    vm_statistics_data_t vm_stat;
+              
+    if (host_statistics(host_port, HOST_VM_INFO, (host_info_t)&vm_stat, &host_size) != KERN_SUCCESS)
+        DLog(@"Failed to fetch vm statistics");
+ 
+    /* Stats in bytes */ 
+    natural_t mem_used = (vm_stat.active_count +
+                          vm_stat.inactive_count +
+                          vm_stat.wire_count) * pagesize;
+    natural_t mem_free = vm_stat.free_count * pagesize;
+    natural_t mem_total = mem_used + mem_free;
+    DLog(@"used: %u free: %u total: %u", mem_used, mem_free, mem_total);
+}