r3wp [groups: 83 posts: 189283]
  • Home
  • Script library
  • AltME Archive
  • Mailing list
  • Articles Index
  • Site search
 

World: r3wp

[View] discuss view related issues

shadwolf
8-May-2005
[993x4]
Type "desktop" to start desktop.
WARNING: CALL function enabled in this version.
To see most recent beta changes, type: changes?
>> stats/frames
== [1536 1401 135 135 12522]
>>
with nothing else done
Type "desktop" to start desktop.
WARNING: CALL function enabled in this version.
To see most recent beta changes, type: changes?
>> recycle
>> stats/frames
== [1536 1121 415 415 11396]
I don't know exactly what means those values
Ashley
8-May-2005
[997]
Knowing some simple memory management techniques that assist recycle 
is useful, such as:

	my-big-binary-image: none
	unset 'my-big-object

 feel: my-feel	; instead of make .. where common code can be shared
	...
Henrik
8-May-2005
[998]
hmm.. under linux the internal version stops when I start it up after 
initial messages. It doesn't display a prompt...
Ashley
8-May-2005
[999]
>> help stats
USAGE:
    STATS /pools /types /series /frames /recycle /evals /clear

DESCRIPTION:
     System statistics.  Default is to return total memory used.
     STATS is a native value.

REFINEMENTS:

     /pools -- Returns: width units free-units units-per-alloc segments 
     mem-in-use
     /types -- Returns: Datatype count

     /series -- Returns: total blocks strings other avail free expansions
     /frames -- Returns: total used unused free values-total

     /recycle -- Returns: count series-total series-last frames-total 
     frames-last ballast
     /evals -- Returns: values functions blocks
     /clear -- Clears the evals counters
shadwolf
8-May-2005
[1000]
Ashley I know  this but that's not explain what means all the numbers 
in the recycle/frames result
Ashley
8-May-2005
[1001]
That's one for Carl I think.
Anton
8-May-2005
[1002]
I think a "frame" is an internal interpreter structure or object.
shadwolf
8-May-2005
[1003]
but in fact the GC is problematic I would prefer a dealloc/realloc 
each time a ": " is found by the REBOL  code parse engine ;)
Anton
8-May-2005
[1004]
I think that would be very slow.
shadwolf
8-May-2005
[1005]
instead of having frames not related to a rebol word and  still allocated 
in memory until the GC decides to do he's job ;)
Anton
8-May-2005
[1006]
But I also admit my opinion is probably useless until I've studied 
and tested various garbage collection schemes.
shadwolf
8-May-2005
[1007]
Slow ?  slower than what letting the memory as this for sure  !!!!
Anton
8-May-2005
[1008]
that's right - slower.
shadwolf
8-May-2005
[1009]
but slower than making a recycle on every show function calls in 
Vid application like what was done in  rebgui  ?? I don't think so 
;)
Anton
8-May-2005
[1010]
you're trying to fight the system without coming up with a better 
one, that's all.
shadwolf
8-May-2005
[1011x7]
What is the true basic problem ?? I have in rebol memory chunks unrelated 
with world on the diccionnary of rebol  and this make the memory 
management just impossible because it dépends on too many things 
unrelated with coding ...
Anton well we are limited basicly be C capabilities If recylcle know 
what to frames to erase it"s normal to ask why those frames are not 
cleared before using new ones ;)
that's logic nothing more ;)
Anton well we are limited basicly by C capabilities If recylcle know 
what to frames to erase it"s normal to ask why those frames are not 
cleared before using new ones ;)
hundreds of line C code are spent into the recycle function but only 
one line could be used free () :)
well i'm too simpling the thing ...
Rebol is not the only one to use GC but it's the only one to give 
coders so little control upon it ;)
Anton
8-May-2005
[1018x2]
C is definitely not Rebol. But consider this:
	a: b: context [data: "love me"]
	a: none
Obviously the object should not be freed yet.

The question is, should a full recycle occur (checking for unattached 
values) ?

I think that would make setting words very slow and degrade performance 
terribly.
(After all, just about every second word in rebol code is a set-word.)
shadwolf
8-May-2005
[1020]
Anton it depends if a; and b; store each the cloned content ;)
Anton
8-May-2005
[1021]
No, the object is shared in this case.
shadwolf
8-May-2005
[1022x4]
>> recycle
>> stats
== 2936994
>> a: make object! [print "I love rebol but not GC"]
I love rebol but not GC
>> stats
== 2937746
>>
and
>> recycle
>> stats
== 2936994
>> a: b: make object! [print "I love rebol but not GC"]
I love rebol but not GC
>> stats
== 2937810
>>
as size are different into the 2 examples maybe the object is clonned 
...
Anton
8-May-2005
[1026]
No, they are not cloned. I can assure you of that.
shadwolf
8-May-2005
[1027]
you have it twice in memory but in fact no because if you make a: 
b: make object! [ test: 'test"]
Anton
8-May-2005
[1028]
And you should recycle and check stats multiple times before and 
after each test.
shadwolf
8-May-2005
[1029x2]
then a/test: "test200" print b/test
this shows the content to the shared object change ;)
Anton
8-May-2005
[1031]
sometimes the returned stats value is not stable.
shadwolf
8-May-2005
[1032]
Anton both code are witen into 2 separated consol
Anton
8-May-2005
[1033]
But we are polluting, I go to Performance group to continue this 
discussion...
shadwolf
8-May-2005
[1034x3]
if you make a:  make object you use less memory than a: b: make object! 
that's a fact ;)
in rebol there is an allocation table that will allow us to know 
if a data is share betwin several word  in the rebol diccionary
and obviously you will clear only single related data
Henrik
8-May-2005
[1037]
where in the heck is that damn prompt...
shadwolf
8-May-2005
[1038]
henrik don't know I don't have tested it under linux ...
Henrik
8-May-2005
[1039]
happens in core too now... no problems with an older rebol/view
Anton
8-May-2005
[1040]
Doing any startup scripts ? Check your user.r
Henrik
8-May-2005
[1041]
no such file. created an empty user.r and now it won't start at all
shadwolf
8-May-2005
[1042]
you're trying to fight the system without coming up with a better 
one, that's all.

 OH OH Comon we are talking about a serrious issue and that's not 
 because I make  a criticise of the system that I have a better solution 
 ....