SynthMaker

Memory Leaks

Archive · 2005 15 old posts

From the original SynthMaker forum (2004–2014), with its members’ names and dates.

unkargherth ·

OK.. Very strange. I started work with a fairly big osm ( around 1.7 Mb on disk),. after Ten minutes. left the computer ( with SM open) to go to lunch. I returned 30 min after and i found a Windows System Message saying that my virtual memory limit was to low. After a while ( 10-15 min) system returned me the control. I'll check task manager and found that SM was using 290 MB of memory and generated 1.7 gb of memory transactions !!!!!

Killed the process, waited to transacctions go dowon ( near inmediately ) and restarted sm. Loaded same SOM and i've been able to work on it like 10 min before same problem

System Pentium 4 2.4Ghz 512 Mb memory 1Gb Virtual memory size

Any Idea?

jorge ·

unkargherth wrote: OK.. Very strange. I started work with a fairly big osm ( around 1.7 Mb on disk),. after Ten minutes. left the computer ( with SM open) to go to lunch. I returned 30 min after and i found a Windows System Message saying that my virtual memory limit was to low. After a while ( 10-15 min) system returned me the control. I'll check task manager and found that SM was using 290 MB of memory and generated 1.7 gb of memory transactions !!!!!

Killed the process, waited to transacctions go dowon ( near inmediately ) and restarted sm. Loaded same SOM and i've been able to work on it like 10 min before same problem

System Pentium 4 2.4Ghz 512 Mb memory 1Gb Virtual memory size

Any Idea?

Ok, Thanks for letting us know. Fortunately memory leak are normally very easy to find and fix.

Tom7777 ·

If you are using WTimer modules in the schematic it could be becuase of this and becuase they keep running im guessing the events do also with them. When i first started using SM i asked for the option to start and stop all audio and i think that this would fix this and a load of other things maybe but i don't know if theres any plans for this.

jorge ·

Tom7777 wrote: If you are using WTimer modules in the schematic it could be becuase of this and becuase they keep running im guessing the events do also with them. When i first started using SM i asked for the option to start and stop all audio and i think that this would fix this and a load of other things maybe but i don't know if theres any plans for this.

It's there already, you can start and stop audio in the DirectSoundOut and ASIOout components.

Tom7777 ·

Does this stop events as well or just audio output? i should have said events before and not audio sorry 🙂

unkargherth ·

I'm using some ( ithink 3) wtimers here. but i've took precautions. I included a multiplexer with wtimer messages that throws them into the "Void" (a module with a trigger input and nothing more) when i press a button conveniently labeled "Stop"

Anyway, it's a complex schematic, so posibly something is going wrong on my part, but not SO WRONG to waste 290 Mbytes of RAM ( i least i expect so.....🙂)

jorge ·

unkargherth wrote: but not SO WRONG to waste 290 Mbytes of RAM ( i least i expect so.....🙂)

Definitely. There should be no memory leaks independently of what you do with the application. Really just a question of cleaning it up.

unkargherth ·

Tom7777 wrote: If you are using WTimer modules in the schematic it could be becuase of this and becuase they keep running im guessing the events do also with them.

Would be nice to have a Shreder type module that guarantees the destruction of everything we throw in

jorge ·

unkargherth wrote: Would be nice to have a Shreder type module that guarantees the destruction of everything we throw in

I think most memory leaks are not related to the destruction of components but general temporary memory used for example to setup sound processes etc.

Tom7777 ·

Yeah a module that when activated freezes all events and audio on a synth or effect. It would also be cool to have some sort of CPU readout module so we could try and get it as low as possible when testing/making a synth. 🙂

unkargherth ·

look here for a basic CPU Meter

infuzion ·

unkargherth wrote: look here for a basic CPU Meter

Sorry, that's not a CPU meter; the "CPU speed" is hard-coded. But like I said, some hosts (like Buzz) do have a CPU meter.

unkargherth ·

You're true, but if you forget the percentual part calculation and get only number of cycles, you don't need the cpu speed, You get an etime of cycles per sample ON ANY MACHINE

Anyway i agree that Cycles per sample measures cost, not load, but gives you a fair approximation while you develop

Tom7777 ·

Thanks, but thats not really what i wanted though 🙂 What i want is something like - Current Schematic CPU and SM Total CPU type thing basically to just know whats good and bad for it when testing and developing synths. No inputs just value readouts.

unkargherth ·

Well, I used to do this with two small assmebler calls, acumulating time over a known number of samples ( 1000 or so) and dividing at the end Something like this

At beginning

RDTSC; MOV startl, eax; MOV starth,edx;

... let process 1000 samples....

RDTSC; SUB eax,startl; SUB edx,starth; DIV 1000; MOV time,eax

But not posible to implement in SM ( from users view) for three reasons

.- ASM Module doesn't support teh RDTSC call. .- ASM it don't supports Integer math primitives .- No way to have a global var visible from two code modules (Mmmm. perhaps passing it as integer?)

Wrote something here? To have a post removed or your name hidden, write to [email protected].

Before your first post

A few rules keep this a friendly place. You agree to them once.

Shown next to what you post, here and in the app. It doesn’t have to be your real name: 3–24 lower-case letters, digits or _ (capitals become lower case, spaces become _).

    Then your post goes up straight away.

    Delete this reply?

    Open it in SynthMaker?

    It goes on the track you’re editing there, in place of that track’s sound, and into My sounds. Your other tracks stay as they are.

    Want to keep that track’s sound? Start a new song in SynthMaker first (Song › New song), then open this.

    Report this reply?

    Only the developer reads reports. The person isn’t told who reported them.

    What’s wrong with it?

    Block this person?

    You won’t see their posts and replies here any more. They aren’t told, and you can unblock them at any time.

    People you’ve blocked

    Their posts and replies are hidden from you. Unblock someone to see them again.

    The community rules

    A few rules keep this a friendly place. Everyone agrees to them once, before their first post.