PDA

View Full Version : Memory Footprint makes me rethink recommending Squeezebox



baconrad
2005-10-31, 09:45
I've been using Squeezebox for a while now and have enthusiastically recommended it to others (some of whom have actually purchased it). I can't bring myself to recommend it to someone with the caveat that they will need another 70-80mb of memory and additional cpu capacity to support it...even when it's not in use.

I see the memory footprint getting increasingly bloated. Now we have an additional 7mb of memory to run some other process in the tray.

I'm a software developer myself. We have an enterprise wide application that tracks all the assets and associated maintenance, accounting, etc for a VERY large institution. It does not use as much memory and other resources as Squeezebox.

It seems like the software needs to be rearchitected so different plug-ins are only loaded as they are used and are unloaded when not in use (see Eclipse).

Sorry to go negative, but I would like to see the software improved.

radish
2005-10-31, 10:15
80mb is nothing - I just bought 512mb for $30. The old rule:

* Fast Execution
* Rapid Development
* Small Footprint

Pick one. Or if you're very very lucky, two.

Pooh22
2005-11-01, 00:35
On Mon, Oct 31, 2005 at 09:15:03AM -0800, radish wrote:
>
> 80mb is nothing - I just bought 512mb for $30. The old rule:
>
> * Fast Execution
> * Rapid Development
> * Small Footprint
>
> Pick one. Or if you're very very lucky, two.

I think this rule stems from before computer science became an engineering
science. I agree with the OP, memory bloat can be a problem and should be
solved somehow. And memory is not to only thing that's a hog, there are
moments when the CPU is also heavily loaded and the web interface can be
very slow as well (Although I've seen fixes for that come by on this list,
but I didn't have time to go in hack mode for that)

/Simon

clumsyoik
2005-11-01, 02:18
I've been using Squeezebox for a while now and have enthusiastically recommended it to others (some of whom have actually purchased it). I can't bring myself to recommend it to someone with the caveat that they will need another 70-80mb of memory and additional cpu capacity to support it...even when it's not in use.

I see the memory footprint getting increasingly bloated. Now we have an additional 7mb of memory to run some other process in the tray.

I'm a software developer myself. We have an enterprise wide application that tracks all the assets and associated maintenance, accounting, etc for a VERY large institution. It does not use as much memory and other resources as Squeezebox.


But is your enterprise application supported on so many operating systems? Do you have any backwards compatibility requirements?

It is very clear that a great deal of effort and resource has been put into slimserver. If only it were as easy as "rewrite the plugin architecture"...

Having said that, there do seem to be some inefficiencies. For example - what data is being written to the database when searching?

Personally I would like to see the whole lot rewritten in Java; then I could fix my own pet peeves, something I can't/wont do in Perl. You probably still wouldn't see any change out of 80MB though, but at least we could have threading, and, erm, be able to read the code ;-)

mflint
2005-11-01, 02:25
80mb is nothingIt's a lot, considering many folks want to run slimserver on a small embedded box 24x7.

I certainly don't want anything as power-hungry as mini-ITX, so it's something like the NLSU2 or Linkstation for me - and currently we'd be lucky to have the luxury of 64Mb to play with!

(yes I know there's the 128Mb LinkstationHG, but they're hard to find. Why can't these folks add an unpopulated SODIMM slot somewhere?)

mherger
2005-11-01, 02:38
> I certainly don't want anything as power-hungry as mini-ITX, so it's
> something like the NLSU2 or Linkstation for me - and currently we'd be
> lucky to have the luxury of 64Mb to play with!

A mini-ITX system with a 2.5" hd and 256MB of RAM might run as low on
power as a Linkstation with a 3.5" disk. Just a guess.

--

Michael

-----------------------------------------------------------
Help translate SlimServer by using the
SlimString Translation Helper (http://www.herger.net/slim/)

Michaelwagner
2005-11-01, 08:30
It seems like the software needs to be rearchitected so different plug-ins are only loaded as they are used and are unloaded when not in use (see Eclipse).I believe you can turn off plug-ins you don't use.

mherger
2005-11-01, 08:42
>> It seems like the software needs to be rearchitected so different
>> plug-ins are only loaded as they are used and are unloaded when not in
>> use (see Eclipse).I believe you can turn off plug-ins you don't use.

....and even remove them from the file system. Which I do for stuff like
iTunes, Moodlogic et al. on my "production" server.

--

Michael

-----------------------------------------------------------
Help translate SlimServer by using the
SlimString Translation Helper (http://www.herger.net/slim/)

Michaelwagner
2005-11-01, 08:53
I just turned off all the plug-ins I don't use (that's most of them). It saved me about 5 MB.

That said, I think the memory footprint is huge considering what it's doing. And I think it's something the development team should consider ... some people want to run this on small-footprint systems like slugs and linkstations.

The audiotron could run itself, an MP3 decoder, a web server and keep 30,000 songs in a memory database inside a 32MB machine. My 8,000 song system here is taking over 80MB. So there's some room for improvement, balanced with the other demands other people have pointed out here - multi-platform, interpreter, etc.

I expect that, in the next few releases, we're going to see the server re-architected so that the highly machine-interactive parts (tending to the hardware, streaming music) can run on one processor, close to the hard disk (or if it's all on one processor, this process runs at high priority), the user interface could run at a medium priority, perhaps in a different processor, and the background stuff (scanning tags on new songs that show up, etc) at a low priority. That would help the readability of that code, because all the dispatch-yourself code could be stripped out, replaced by real OS style dispatching (or a Slim dispatcher).

kdf
2005-11-01, 09:46
On 1-Nov-05, at 7:53 AM, Michaelwagner wrote:

>
> That said, I think the memory footprint is huge considering what it's
> doing. And I think it's something the development team should consider
> ... some people want to run this on small-footprint systems like slugs
> and linkstations.
>
like it is ever not a consideration.

Michaelwagner
2005-11-01, 11:10
like it is ever not a consideration.OK, maybe I should have worded that better, like give it a higher priority. I was rushing to go to work.

kdf
2005-11-01, 11:22
Quoting Michaelwagner <Michaelwagner.1xtyez (AT) no-mx (DOT) forums.slimdevices.com>:

>
> kdf Wrote:
>> like it is ever not a consideration.OK, maybe I should have worded
>> that better, like give it a higher
> priority. I was rushing to go to work.

Well, as a bit of backstory...
5.4.1 maintained all data resident in memory. Typical footprint well over
100megs
6.0+ uses db, typical footprint being discussed 80 megs or so.
Since 6.0 Michael Herger has optimised plugin loading to reduce things
by a few
more megs, as well as loading strings only as needed (chosen language plus EN
only).

Now, look through the posts and you'll find that some users want everything
faster again and running in memory like it used to be.

Understandably, you have your own criteria for your needs. I tend have
a little
more faith that the people in charge of this actually know what they are doing
and are properly balancing needs (instead of catering just to the most vocal)
Without that, code would be going back and forth with zero progress.

-k

qirex
2005-11-01, 14:45
I assumed that a program that can easily handle filesizes in the hundreds of megabytes range would have a footprint like that. I have a mostly-dedicated server so I'm not as concerned but the info it uses can either be in memory [and instantly accessible] or on disc [and slower].

Maybe the "Slim" part of the brand is confusing people? :p

JJZolx
2005-11-01, 15:09
I've been using Squeezebox for a while now and have enthusiastically recommended it to others (some of whom have actually purchased it). I can't bring myself to recommend it to someone with the caveat that they will need another 70-80mb of memory and additional cpu capacity to support it...even when it's not in use.

I see the memory footprint getting increasingly bloated. Now we have an additional 7mb of memory to run some other process in the tray.

I'm a software developer myself. We have an enterprise wide application that tracks all the assets and associated maintenance, accounting, etc for a VERY large institution. It does not use as much memory and other resources as Squeezebox.

It seems like the software needs to be rearchitected so different plug-ins are only loaded as they are used and are unloaded when not in use (see Eclipse).

Sorry to go negative, but I would like to see the software improved.
The "slim" device approach of running an enormous server and a slim client is great if you can appreciate the elegance of this architecture. As a software solution for a consumer audio product, though, it leaves a lot to be desired. I'm afraid I'd be unable to recommend a Squeezebox to any but a few highly computer savvy friends because of the size and complexity of the software.

andy b
2005-11-01, 15:25
Quoting Michaelwagner <Michaelwagner.1xtyez (AT) no-mx (DOT) forums.slimdevices.com>:
[color=blue]

Now, look through the posts and you'll find that some users want everything
faster again and running in memory like it used to be.

Understandably, you have your own criteria for your needs. I tend have
a little
more faith that the people in charge of this actually know what they are doing
and are properly balancing needs (instead of catering just to the most vocal)
Without that, code would be going back and forth with zero progress.



Why not have a user preference to say how much memory you're happy for the server to use. That way both the large memory/fast people AND the small memory/slower people would be happy.

I wouldn't be happy though. I want it to be immediate, and to take up no memory ;-)

pfarrell
2005-11-01, 15:38
On Tue, 2005-11-01 at 14:09 -0800, JJZolx wrote:
> baconrad Wrote:
> > can't bring myself to recommend it to someone with the caveat that they
> > will need another 70-80mb of memory and additional cpu capacity to
> > support it...even when it's not in use.
> The "slim" device approach of running an enormous server and a slim
> client is great if you can appreciate the elegance of this
> architecture.

I can't tell you how to think, but 100 mb of RAM is not a big deal
these days. It is hardly enormous.

Plus with PCs as cheap as they are, if the memory and/or CPU needs
are a problem, you can run the Slimserver on nearly any left over PC
that is laying around. New Dell PCs with 2Ghz processors and 512MB of
ram are about the same cost as 50 CDs. ($500).

Its not a solution for people looking for a music appliance.
There are many of them on the market, at prices that will buy
a couple of Squeezeboxen, a server, and a fee to have me
fly out and install it all.

I just checked one of the usual web-computer stores. 512MB of PC3200 DDR
memory is $34.99. That is about what interconnect cables cost from
Monster. This is a lot of current, good, fast memory.

Seems to me that small, slow systems are a niche market.


--
Pat
http://www.pfarrell.com/music/slimserver/slimsoftware.html

Michaelwagner
2005-11-01, 16:50
Why not have a user preference to say how much memory you're happy for the server to use.I believe someone pointed out a few days ago that the database system in use has such an option. It would just have to be made adjustable at the user interface.

radish
2005-11-01, 17:03
I can't tell you how to think, but 100 mb of RAM is not a big deal
these days. It is hardly enormous.

Plus with PCs as cheap as they are, if the memory and/or CPU needs
are a problem, you can run the Slimserver on nearly any left over PC
that is laying around. New Dell PCs with 2Ghz processors and 512MB of
ram are about the same cost as 50 CDs. ($500).


Exactly. I just checked and my firefox instance (with 2 tabs open) is taking over 40mb, intellij (java editor) is 70mb with nothing open, and picasa is 50mb (even outlook takes 40). Memory is cheap, even PCs are cheap. I bought a PC this weekend (AMD 3100+, 512mb ram, 100gb disk) for just over $300.

A server side process like slim running in 70mb is pretty damn good in my experience (as someone who writes such things for a living). Most of the apps I work with take well over a gig.

mherger
2005-11-02, 00:02
> I believe someone pointed out a few days ago that the database system in
> use has such an option. It would just have to be made adjustable at the
> user interface.

I immediately thought of a small plugin doing nothing but that setting in
its initPlugin() routine... volunteers?

--

Michael

-----------------------------------------------------------
Help translate SlimServer by using the
SlimString Translation Helper (http://www.herger.net/slim/)

Dave D
2005-11-02, 05:34
The "slim" device approach of running an enormous server and a slim client is great if you can appreciate the elegance of this architecture. As a software solution for a consumer audio product, though, it leaves a lot to be desired. I'm afraid I'd be unable to recommend a Squeezebox to any but a few highly computer savvy friends because of the size and complexity of the software.

I reluctantly agree with this, and stability of the s/w falls into the same category, I think. My brother was over for a visit and seemed really interested in the SB2. However, he is not very comfortable with computers (limited pretty much to internet browsing) and certainly not with any networking. Since he's halfway across the country, I can't just drop in to fix things for him.

[Edited below; somehow managed to morph two problems into one.]

This is a bit OT, but an example I've been having issues with 6.2 and 6.5 beta. I have not been able to figure out what's going on, but sometimes the server will just stop (when music is not playing) and the SB2 will not be able to re-connect. It oftne requires me to restart the computer (in that case, the Slimserver try icon has the option to "start", but it does nothing.) Last night, I loaded 6.5 beta, started it up and was playing around with somthing else for about 15 minutes. When I went to play a song, slimserver had already stopped. I was able to restart it this time without restarting the computer, and then it played fine. Slimserver is still running this morning. Who knows why this happens? For all I know, it could be something someone else is doing on the 'puter when I'm not around. But I have other programs which do not just "stop" like slimserver does.

Anyway, these issues are not a big deal for me; just a minor inconvenience. But I agree it makes the SB harder to recommend to others who are less comfortable with twiddling on the 'puter.

baconrad
2005-11-02, 22:17
But is your enterprise application supported on so many operating systems?
...
Personally I would like to see the whole lot rewritten in Java;

Yes, my app can run on many OS's as it is written in Java. So, yes, I agree with you about a java rewrite. Then I might do something more than just complain. Perl is a WO (write-only) language... it's unreadable. Seriously, perl is very powerful but I would not consider writing a large application with it.

And I don't know that plug-ins are the problem, and I know memory is cheap. But it still seems like an 80mb footprint when it is not doing anything is quite excessive.

Dan Sully
2005-11-02, 23:20
* baconrad shaped the electrons to say...

>Yes, my app can run on many OS's as it is written in Java. So, yes, I
>agree with you about a java rewrite. Then I might do something more
>than just complain. Perl is a WO (write-only) language... it's
>unreadable. Seriously, perl is very powerful but I would not consider
>writing a large application with it.

Thank you for your vote of support, and years of engineering Perl
applications to be readable, scalable and extensible.

-D
--
There is no emergency. Nothing to see here. Move along.

seanadams
2005-11-02, 23:55
Yes, my app can run on many OS's as it is written in Java. So, yes, I agree with you about a java rewrite. Then I might do something more than just complain. Perl is a WO (write-only) language... it's unreadable. Seriously, perl is very powerful but I would not consider writing a large application with it.

And I don't know that plug-ins are the problem, and I know memory is cheap. But it still seems like an 80mb footprint when it is not doing anything is quite excessive.

class Div{static $1 $_;class $1{void _$(String $_){System.//
out.print($_);}$1(){_();}void _(){int _,$,_$,$$,__,=(1<<5),
=100,=12,=*;-=1<<4;while(>0){for($$=_$=_=__=$=(int)
;_$>($$-(1<<2));_$(""+(char)(_$)),_$-=1<<1)for(_=$=__-9;_>(
$-6);_-=1<<1,_$(""+(char)(_$!=?_:)));char S$=(char)(++1)
;_$("te"+S$+(char)(+(int)S$));--;}}}Div(){$_=new $1();}
public static void main(String []$){Div =new Div();}}

seanadams
2005-11-03, 00:05
And in fairness to both sides:

http://www.seanadams.com/perltris/

You can write crap in any language. Please learn perl and then tell us how you feel about SlimServer. I don't speak German so I have no opinion about its readability.

jhwilliams
2005-11-03, 00:51
I'm a software developer myself. We have an enterprise wide application that tracks all the assets and associated maintenance, accounting, etc for a VERY large institution. It does not use as much memory and other resources as Squeezebox.

I'm guessing you don't use WebSphere then.

jhwilliams
2005-11-03, 01:05
Yes, my app can run on many OS's as it is written in Java. So, yes, I agree with you about a java rewrite. Then I might do something more than just complain. Perl is a WO (write-only) language... it's unreadable. Seriously, perl is very powerful but I would not consider writing a large application with it.

And I don't know that plug-ins are the problem, and I know memory is cheap. But it still seems like an 80mb footprint when it is not doing anything is quite excessive.

Take a look at something like Azureus, or Eclipse - Java doesn't win any prizes in the memory footprint stakes.

I've rarely seen any Java application (server or client side) that doesn't have bloat issues. In fact I don't think I've ever seen a genuinely lean Java app. Especially when profiling peak memory usage.

I wouldn't mind a Java slimserver for the same reasons (more accessible to me), but I doubt it would solve the memory usage issues.

clumsyoik
2005-11-03, 05:46
You can write crap in any language. Please learn perl and then tell us how you feel about SlimServer. I don't speak German so I have no opinion about its readability.

I love that perltris code. Looks a bit wordy to me though...

Check this out (tetris in 256 bytes)

http://www.survex.com/~olly/dsm_rheolism/

radish
2005-11-03, 06:47
class Div{static $1 $_;class $1{void _$(String $_){System.//
out.print($_);}$1(){_();}void _(){int _,$,_$,$$,__,=(1<<5),
=100,=12,=*;-=1<<4;while(>0){for($$=_$=_=__=$=(int)
;_$>($$-(1<<2));_$(""+(char)(_$)),_$-=1<<1)for(_=$=__-9;_>(
$-6);_-=1<<1,_$(""+(char)(_$!=?_:)));char S$=(char)(++1)
;_$("te"+S$+(char)(+(int)S$));--;}}}Div(){$_=new $1();}
public static void main(String []$){Div =new Div();}}

Who the hell are TIGERteam?

Dave D
2005-11-03, 07:03
At the risk of getting back on topic ;)

(and I actually really like Perl; it's saved my butt here in viewdraw-schematic-land many times. But cannot really comment on its use by real s/w engrs for real applications.)

Anyway, regarding the memory footprint, it does seem large (but we can still ask, does it matter that much). Here are the top easily-recognizable memory users on my laptop right now:

slim 60M
javaw 35M (softsqueeze)
thunderbird 33M
outlook 33M (don't give me crap--I need it for mtgs)
explorer 32M
...
firefox 29M (7th in list)
visio 25M
...
excel 17M (11th in list)
slimtray 7.5M (17th in list)

I have zero music files on this laptop; just using slim for internet feeds with the softsqueeze infc.

I'm just wondering: is much of this footprint coming from the plugins or is it mostly the main app? The plugins are what really make slimserver attractive, IMO, so I wouldn't really care to remove them. I don't have any loaded other than the ones which come packaged with slimserver.

On the laptop I don't care much about the 60MB; I'm priviledged to have 2GB DRAM. However, on the home machine it's only 512MB. (so funny--the first hard drive I bought for my mother was 20MB :)