Showing posts with label memory. Show all posts
Showing posts with label memory. Show all posts

Wednesday, February 03, 2010

EatMemory

a small application which uses the native Win32 API to allocate as much memory as it can (up to 2GB), and verifies it.

Notes:
This application is designed to test the limits of your device's memory. In particular, to test if the HD2's additional 128MB is actually usable or not.

This application will attempt to allocate as much memory as it can, OS limits notwithstanding. The application allocates memory in the OS's shared memory space, which means that it isn't privy to the usual 32MB address space limit.

Because the application isn't limited to 32MB memory usage, you don't need to run multiple instances to consume your memory. Just one instance will do.

This application does not use .NET, and instead uses the direct low-level kernel memory management functions (VirtualAlloc and VirtualFree) to reserve, commit, and free virtual pages. This means that the application has much more precise control over memory, and can consume memory until only a couple of megabytes remain.

This application verifies the memory it allocates, by writing a byte pattern to the memory, and reading it out again. This is necessary because the Windows CE kernel does not commit pages to physical memory unless the memory page is read/written from at least once. This also guarantees that the memory is, in fact, usable and valid.

EatMemory

Wednesday, October 07, 2009

EverApp

EverApp allows WM6.x users to make individual applications immune from Windows Mobile memory management.

Apps managed by EverApp will remain open and accessible regardless of memory conditions.

FREQUENTLY ASKED QUESTIONS

Q: Why was EverApp created?

EverApp was created to solve a problem plaguing many users under WM6.5 (though it is potentially beneficial for any WM6.x user). The memory management routines under WM6.5 seem particularly aggressive, and many users experience situations where they can only keep one or two applications open simultaneously before WM begins shutting down background apps.


Q: Why is this a problem?

In a perfect world, every WM app would be written properly. That is, it *should* save its state when shutting down and restore it when starting up. In this way, the fact that an application gets shut down by the operating system is almost transparent to the user. In situations where the application performs some function that needs to run continuously (like an MP3 player, for example), the application *should* employ a UI thread and a processing thread so that killing the UI thread doesn't stop the player.

Unfortunately we don't live in a perfect world, and lots of useful applications out there don't play well with Windows Mobile memory management. Blame the app, or blame Windows Mobile. Regardless, in situations where the application stops functioning as desired when shut down by WM memory management, EverApp can help sidestep the problem.


Q: How does it work?

EverApp continually monitors the list of running apps. When it detects that a protected application has been sent to the background, EverApp temporarily re-assigns that application's window to a special, hidden window owned by EverApp. This special window is immune to shutdown by WM memory management. Likewise, applications assigned as children of this window are also immune to shutdown.

The protected application continues running in the background (it won't appear on most task switchers, but is visibile in the process list). When the application is requested (activated) by the user through the EverApp UI, EverApp fully restores the hidden application.


Q: Can/Should I use it for *any* application?

No. You should avoid it using on applications which already gracefully handle shutdowns themselves, and/or already use background processes to manage their own persistence (for example, iGo and Pocket Player). Applications that don't serve a valuable function just sitting in the background (app launchers, for example) don't generally need to be protected. It also may not work well on applications that do extraordinary things with their windows. Please post results so that we can continue to expand the list of known problem-apps below.


Q: This sounds promising, but won't keeping too many apps running cause stability issues?

Possibly, yes. There's a reason WM tries to shut down applications as you open new ones. Trying to manage 2 or 3 critical applications through EverApp should be fine. Trying to run a dozen might cause WM to actually run out of memory and crash/shutdown. It's important to pick just those apps that are valuable to keep running full-time and don't already manage themselves properly.


Q: What are the operating system requirements?

.NET Compact Framework 3.5
Windows Mobile 6.x


Q: What handhelds will this work on?

It was developed and tested on an Omnia i910. However, it should function properly on any WM6.x device. Please post success and failure stories to the thread so we can keep track and address hardware issues that may crop up.


Q: What enhancements are planned?

Autostart the service on WM startup
[Done] Command-line interface (so you can activate an app without having to use the EverApp UI)
Better visual indication in the Protected Apps list of what is currently not running/running/protected
Inclusion of non-protected apps in the app list (making EverApp a general task manager as well).


Q: How does it impact battery life?

The monitoring EverApp does is pretty lightweight. All testing thus far has shown no noticeable impact on battery life.


Q: What applications should I avoid using EverApp for (these apps already manage themselves properly and/or make complex use of their windows that causes problems for EverApp)?

EverApp, S2U2, Conduit Pocket Player, iGo8
(more to follow...)


Q: I'm going to flash my phone and I want to preserve EverApp's configuration. How can I do that?

Copy everapp.xml from your EverApp application folder (\program files\everapp or wherever you installed to) and put it someplace safe. After flashing, re-install EverApp. Before starting EverApp, copy everapp.xml back in to the new EverApp application folder.

QUICK DOCS

Install the attached CAB as you would any other CAB.
Launch EverApp from the Start menu.

Main UI

This presents a list of protected applications. Initially this will be completely blank, so don't be alarmed if the application looks a little empty.

Soft Button Menu Options

Main->Add
Allows you to add executables to EverApp's list of protected applications. Note that the application does NOT have to currently be running to be Added.

Main->Remove
Remove the currently selected application from the list of protected apps.

Main->Run/Stop Service
Toggles the EverApp monitoring service. This service needs to be running for applications to be monitored and protected.

Main->About & Exit
Fairly self-explanatory. (Note that exiting the UI will leave the EverApp service running once it has been started, so you can go ahead and close the UI without worrying about interrupting monitoring and protection).

Activate
This will unhide the selected application (assuming it is currently being protected by EverApp). You can also double-click the app in the list or press/hold and select Activate from the popup menu.

Protected App List context menu (press and hold an app)

Add
Same as Main->Add

Remove
Same as Main->Remove

Manage Duplicates
When enabled, EverApp will detect if a second instance of a protected app is launched, kill it, and bring the original protected app into the foreground.

EACmdLine.exe

This allows the creation of shortcuts that can be used to activate protected apps. This is useful if you want to bind activation of a protected app to a hardware key. The format for the shortcut should be:

\full\path\to\EACmdLine.exe show "\full\path\to\target"

EverApp

Saturday, September 12, 2009

PdaMonitor


PdaMonitor is a small utility that continuosly shows battery percent, memory, etc.

- Processor usage.
- Battery charge.
- Current consumption.
- Free memory.
- Memory percentage used.

It has three small lines in the top of the screen.
The first one shows the instantaneous processor use percentage. It's always green.
The second One shows the battery charge state, and it's colour the current consumption in hundreds of mA.
The third one shows the free memory percentage from the one assigned to run programs, and it's colour the number of 10MB free blocks.

PdaMonitor

Wednesday, September 02, 2009

RAM Sweeper


RAM cleaner

How it works?
Instead of ending the process from a blacklist to gain some RAM this will kill everything except the processes that are included in the ramsweeper.txt file(white list), this way you will gain the max possible RAM. I've also included an option to run any program with optional parameters after every RAM sweep.

Configuring RAM Sweeper
RAMSweeper.txt is located at \program files\RAM Sweeper and it contains the white list, the format of this files is very easy:

Code:
EXC process.exe -> will add process.exe to the white list (process wont be killed)
RUN "apppath" -> will run the defined program after a RAM sweep
RUN "apppath" Parameter -> will run the defined program with the defined parameter
here is an example of each possible commands:
Code:
EXC RAM Sweeper.exe
RUN "\Windows\Linterna.exe"
RUN "\Internal Storage\Program files\ssmaho\SSMaPaT2.exe" \ssmaho.config --hook
The default file contains the following entries:

Code:
EXC cprog.exe
EXC connmgr.exe
EXC device.exe
EXC filesys.exe
EXC gwes.exe
EXC NK.EXE
EXC poutlook.exe
EXC repllog.exe
EXC services.exe
EXC shell32.exe
EXC RAM Sweeper.exe
EXC SIPGT_app.exe
EXC iLock2.exe
EXC accsensor_app.exe
EXC LargeDisplayStart.exe
EXC rapiclnt
EXC changescreen.exe

Important Note:
This will run without any problem on the diamond and probably HD,Raphael,topaz,rhodium.... but with older devices you will maybe have to add some important processes to ramsweeper.txt or you will kill them and may have some problems (freezes, some programs may stop working...). Just use a taskmanager to check the processes (i attach a simple task manager i've made).
.NetFramework3.5 is needed

RAM Sweeper

Sunday, June 28, 2009

Extendir


Windows Mobile up to 12 times faster!

Extendir is a file system filter driver that significantly increases the performance of your phone, in specific situations even up to 12 times as fast and faster…
Just cook it in to your rom and of you go!

But Extendir has also a very nice bonus feature: it can extend your windows directory!
Every file (not folder) that will be installed in the folder “\Extendir\WinDir” or in any one of its subfolders will get a virtual alias in the windows folder. When the OS request the file from the windows folder, it will be redirected to the real location of the file without the OS ever knowing about it.

For example:
When Manila is loaded, the OS thinks all the (900+) files are in the windows folder while the real files are installed in 30 subfolders of the folder “\Extendir\WinDir\Manila”, like this:
\Windows\manila.exe -> \ Extendir\WinDir\Manila\Manila24\ manila.exe
\Windows\68820878_manila -> \ Extendir\WinDir\Manila\Manila02\ 68820878_manila
\Windows\57ad503f_manila -> \ Extendir\WinDir\Manila\Manila17\ 57ad503f_manila
\Windows\7fc62a3c_manila -> \ Extendir\WinDir\Manila\Manila28\ 7fc62a3c_manila
Etc.

But it could also be like this:
\Windows\manila.exe -> \ Extendir\WinDir\Manila\Manila24\ manila.exe
\Windows\68820878_manila -> \Windows\68820878_manila
\Windows\57ad503f_manila -> \Storage Card\ Extendir\WinDir\Manila\Manila17\ 57ad503f_manila
\Windows\7fc62a3c_manila -> (Cooked in rom)
Etc.

This makes it possible to cook roms with 500 or less files in it, while all the other files/apps/etc. will be installed on first boot or later.
Which will bring me to the next application I’ve created:


Preset Installer is an application that can create and install predefined sets of cab files and mort scripts.

For the better user experience you should automatically start Preset Installer on first boot.


But creating cab files (converting rgu/reg/xml/provxml files, create _setup.xml, all the different file locations to optimize for Extendir) takes al lot of time…
Well… Not anymore:

Extendir Cabs is a utility to create cab files.

Converting packages or your favorite tweaks to a setup cab was never so easy!
The nice part of a setup cab is that you can uninstall it manually or automatically when you’ve got an updated version of the program you want to install.

Extendir

Monday, April 13, 2009

Where Is My RAM?


a good overview of which documents and programs were taking up the space on Pocket PC.

WIMR? will show you a file explorer like list of all files and directories on your device, sorted by size. WIMR? will start at the root of the device, and you can then tap directories to enter them. Use the "up" icon to go back up a level and the "refresh" icon to recalculate the current location if you change something in another application (e.g. a file explorer or in the "remove programs" control panel applet).

There is a few options in the program: You can choose to show file-sizes in bytes, kilo-bytes, mega-bytes or use the 'auto' setting (files < 1024 bytes shown in bytes, files < 1048576 bytes KB and files > 1048576 in MB).

You can choose to see only files in ROM, RAM or both. This option is to filter out the ROM items which you can't delete anyway (or the other way around: to have a peek at what's in the ROM).

You can also delete single files directly from WIMR?, call the "Remove programs" control panel applet to uninstall complete programs, launch a file directly from WIMR? or view detailed information about a selected file.

Where Is My RAM?

Monday, March 30, 2009

cleanRAM 1.0.9


The name of the app pretty much sums it up.

Changelog:
Version 1.0.9 - Added & Fixed: bugs collective (from the first version to now) some memory + improve interface and code + cleaning progress bar added
Version 1.0.6 - Fixed: some memory small issue (level 3) + version string not correct + icon duplicated (cleanRAM(1))
Version 1.0.5 - Added: Icons Changed (mmm... i'm not an artist) + NO NEED NET3.5 INSTALLED + new icon (exercise application icon) in start menu
Version 1.0.4 - Fixed: about screen + small issue (nk.exe error msg) for htc touch pro users.
Version 1.0.3 - Added: all registry settings is now in the archive/installation file (cab) + new icon for "cleanRAM config" shortcut (red).
Version 1.0.2 - Fixed: application shortcuts doesn't appears (on some devices)
Version 1.0.1 - Fixed: some small issues with Level 1 and shortcuts
Version 1.0.0 - Added: "Reset Processes Mode" new feature with restart time chooser
Version 0.9.5 - Added: "Show Hidden Processes" new feature to show all processes (including services. dangeros!)
Version 0.9.2 - Fixed: problem with "RAM Status Notification" screen and other small issues


Notice to all: Use cleanRAM at your own risk!!! NO WARRANTY!!!

The .cab is attached at bottom.
Requires .NET v3.5.

Although, this app was specifically designed for the Diamond and Pro, it has been confirmed to work on the Vogue (thanks guitardoc64) and the Mogul as well (thanks dschoenike), quite well actually. I think it's safe to assume it'll work on any HTC device, as long as it has .NET 3.5 installed; however, I am not responsible for any damage to you phone.

cleanRAM

Wednesday, April 09, 2008

DirMap


DirMap is the best choice for representing your memory space usage.

DirMap represent the memory usage with a graphical view where each file and folder is represented as a rectangle which area is proportional to the size of the file/folder. Using this representation you can easily locate large files and folders.

Dirmap can also list the content of any folder by sorting all files and subfolders by size.

JC.Tools