VitaminSEE

VitaminSEE 0.7.1.2

This build fixes a number of memory leaks in VitaminSEE, where memory wasn’t being freed when a window was closed, thus causing VitaminSEE to consume a large amount of memory over a long session.

VitaminSEE v0.7.1.2 (Universal Binary)
VitaminSEE v0.7.1.2 (for 10.3.x)
VitaminSEE v0.7.1.2 Source

Releases
VitaminSEE

Comments (7)

Permalink

Memory Usage

So, later tonight, I’ll be making a release of VitaminSEE that should fix most of the current memory leaks, so I can go off and make new ones for the next version.

But right now, I want to talk about the conditions under which VitaminSEE consumes ridiculous amounts of memory (which won’t be fixed in this release). You may have noticed that on folders with a large number of image files, VitaminSEE will consume really large amounts of memory.

For example, I have an “Unsorted” folder with 1,666 images in it. VitaminSEE starts from a resting memory position of 8 megabytes. After giving VitaminSEE a few moments to load all the thumbnails, Activity Monitor tells me that VitaminSEE is using 25 megs of real memory. Not optimal, but more then acceptable. After scrolling from the first file in the folder to the last file, VitaminSEE’s memory consumption jumps all the way up to 122 megabytes. Note that it already had the thumbnails in memory before the jump.

From what I can make out from MallocDebug, it appears that the implementation of either NSBrowser or NSMatrix in Cocoa render their contents into an NSImage offscreen, and then copy that cached version onto the screen.

Solving this will require me to do one of the two things:

  • Find a magic way to tell whatever class is at fault to not cache things this way (Quick, unlikely)
  • Look at other controls and see if I can coerce them to do what I want to do.
  • Write my own control that doesn’t do things this way. (Hard, would take a long time)

VitaminSEE

Comments (0)

Permalink

VitaminSEE 0.7.1.2 Beta

The entire 0.7 series of VitaminSEE has had a string of severe memory leaks. This build hopes to address most of them. It contains no new features; it is purely a bugfix build.

This is a beta build; the final version will be released in two days if no serious problems are found with it. Please leave a comment if you find a defect (that isn’t present in previous builds). Please do NOT submit this build to the release announcement sites.

VitaminSEE 0.7.1.2 Beta
VitaminSEE 0.7.1.2 Beta (for 10.3.9)
VitaminSEE 0.7.1.2 Beta source code

Releases
VitaminSEE

Comments (0)

Permalink

VitaminSEE 0.7.1.1

VitaminSEE 0.7.1.1 is a bugfix release that fixes two issues with VitaminSEE 0.7.1:

  • When I upgraded to IconFamily 0.9.1, I forgot to port my changes that would restore a file’s modification date. Fix this so building a thumbnail of a file does set the modification date.
  • Back/Forward will now focus on the file/folder you were on previously, instead of always starting at the beginning of the list.

VitaminSEE v0.7.1.1 (Universal Binary)
VitaminSEE v0.7.1.1 (for 10.3.x)
VitaminSEE v0.7.1.1 Source

Releases
VitaminSEE

Comments (0)

Permalink

VitaminSEE 0.7.1

I have just released VitaminSEE 0.7.1, after three betas and a lot of testing. The product page has been updated. As always, thanks go to B. Star for testing and Hiroto Sakai for the updated translation.

What’s new:

  • Upgrade IconFamily to 0.9.1
  • Make rename sheet handle extensions like the Save… dialogs do
  • Add a fullscreen mode
  • Don’t display document types that OSX treats as images, such as postscript
    files, and PDFs.

Download

VitaminSEE v0.7.1 (Universal Binary)
VitaminSEE v0.7.1 (for 10.3.x)
VitaminSEE v0.7.1 Source

Releases
VitaminSEE

Comments (3)

Permalink

Duplicate Image Algorithms

GQView was my favorite image viewer on Linux, and a high quality image duplicate finder is the only feature that VitaminSEE lacks that I miss from GQView. I’ve already started thinking beyond 0.7.2 to the big feature of 0.8: Duplicate image search, like in GQview. I wasn’t sure what the algorithm in gqview was, so I finally stumbled upon this page which outlines a few image comparison implementations.

GQView looks like the simplest algorithm: It subdivides the image into a 32 x 32 grid, and then takes the average pixel color of each block. The difference is simply the sum of the difference between each block in the two images, normalized to a value between 0 and 1. The similar.c code in GQView is really that simple. I’m surprised that I got such good results back when I used it. Unless I find something better, I’m guessing that this is going to be the base algorithm, after I figure out how GQView scales with it to deal with hundreds (thousands?) of files.

And after 0.7.2 is released, of course.

Current Mood: accomplished

VitaminSEE

Comments (0)

Permalink

VitaminSEE 0.7.1 Beta 2

This build fixes problems with VitaminSEE 0.7.1 Beta 1. It fixes the problems with Fullscreen mode always being disabled, and it sports an updated (beta) Japanese translation by Hiroto Sakai.

(Beta links removed, since 0.7.1 final is out.)

Releases
VitaminSEE

Comments (0)

Permalink

VitaminSEE 0.7.1 Beta

I’m pleased to announce the beta for VitaminSEE 0.7.1. I’d love feedback on the new features:

  • Fullscreen mode
  • Better extension handling in the rename dialog
  • Crash reporter, update checker and feedback reporter

(Beta links removed, since 0.7.1 final is out.)

The Japanese translation for this release is not yet complete.

Releases
VitaminSEE

Comments (0)

Permalink

Public Subversion access

I finally have a public subversion repository for people who want access!

http://svn.elliotglaysher.org/VitaminSEE

All development will be done in that repository from now on.

VitaminSEE

Comments (0)

Permalink

Mission Statement

I’ve broken down and started a real website. My previous “website” was a ten minute job that I created as an afterthought to comply with the one rule of the UM Cocoa Codeoff ‘05 that stated that I had to have a website.

This is going to be different. This website is going to be functional, usable, and something I’ll be proud to associate my name with.

This domain will be used for/will contain:

  • Random thoughts on programming
  • Hosting of the VitaminSEE page, its Subversion repository, and the Trac that does wiki and bug management.
  • Random life things
  • Everything else I think of

Projects
VitaminSEE

Comments (0)

Permalink