コード例 #1
0
            //I/xNativeActivity(21471): \VrCubeWorld.AppThread.cs:71 mallinfo  total allocated space:  2 027 243 344
            //I/xNativeActivity(21471): \VrCubeWorld.AppThread.cs:72 mallinfo  total free  space:  70 957 232
            //I/xNativeActivity(21471): \VrApi.ovrMatrix4f.cs:343 out of heap? errno: 12 Out of memory
            //I/xNativeActivity(21471): \VrCubeWorld.AppThread.cs:71 mallinfo  total allocated space:  -2 080 212 552
            //I/xNativeActivity(21471): \VrCubeWorld.AppThread.cs:72 mallinfo  total free  space:  74 286 664


            //I/xNativeActivity(15462): \VrCubeWorld.AppThread.cs:90 mallinfo  total allocated space:  5 512 048
            //I/xNativeActivity(15462): \VrCubeWorld.AppThread.cs:91 mallinfo  total free  space:  13 362 320

            //I/xNativeActivity(18481): \VrCubeWorld.AppThread.cs:71 mallinfo  total allocated space:  -2083023504
            //I/xNativeActivity(18481): \VrCubeWorld.AppThread.cs:72 mallinfo  total free  space:  76 049 040

            // https://groups.google.com/forum/#!topic/android-ndk/lcnwzszrESo
            // http://stackoverflow.com/questions/30480007/is-using-largeheap-in-android-manifest-a-good-practice
            // https://developer.android.com/reference/android/app/ActivityManager.html#getLargeMemoryClass()
            // http://dwij.co.in/increase-heap-size-of-android-application/
            // http://stackoverflow.com/questions/16957805/android-how-to-increase-application-memory-using-ndk


            // called by onCreate
            public ovrAppThread(JNIEnv env, jobject activityObject)
            {
                // 1907
                ConsoleExtensions.trace("enter ovrAppThread, call pthread_create");

                // why keep it?
                env.GetJavaVM(env, out this.JavaVm);
                this.ActivityObject = env.NewGlobalRef(env, activityObject);


                this.Thread = new System.Threading.Thread(
                    delegate()
                    {
                        // can we do closures?
                        ConsoleExtensions.trace("enter thread for vrapi_SubmitFrame");


                        //malloc_h.malloc_stats();

                        //xmallinfo();

                        //ConsoleExtensions.trace("adding memory pressure...");

                        //var mb = 8 * 1024 * 1024;
                        //var pressure = new byte[mb];

                        ////System.Threading.Thread.Sleep(1000);

                        //xmallinfo();


                        ////ConsoleExtensions.trace("adding memory pressure... store...");

                        ////for (int i = 0; i < mb; i++)
                        ////{
                        ////    pressure[i] = (byte)(0xcc ^ i);
                        ////}

                        ////xmallinfo();

                        //// GC. would jsc static analysis know it means we can free that memory?

                        //stdlib_h.free(pressure);

                        ////pressure = null;

                        ////System.Threading.Thread.Sleep(1000);
                        //xmallinfo();


                        // would our chrome app be able to switch over to ndk over udp?
                        this.AppThreadFunction();
                    }
                );
                this.Thread.Start();
            }
コード例 #2
0
            // called by onCreate
            public ovrAppThread(JNIEnv env, jobject activityObject)
            {
                // 1907
                ConsoleExtensions.trace("enter ovrAppThread, call pthread_create");

                env.GetJavaVM(env, out this.JavaVm);
                this.ActivityObject = env.NewGlobalRef(env, activityObject);

                var createErr = pthread.pthread_create(out this.Thread, null, AppThreadFunction, this);
                // tail call?
            }