Right now, strings are mutable, actually. But soon, they should be
immutable for Unicode-related reasons, so that may be a possibility.
Slava has opposed interning strings because it makes things more
complicated and initialization takes a little longer, but if we're
accepting auto-normalization, this wouldn't be worse.

It's possible to do a special case on a few particularly common
strings--just define them as constants, eg : stack_chain "stack_chain"
; but I don't know the specifics of the situation.

Daniel Ehrenberg

On 10/2/07, Samuel Tardieu <[EMAIL PROTECTED]> wrote:
> When looking at the output of "strings factor.image", I noticed that
> a few strings seem to be repeated a lot of time. I saved the result
> into "factor.strings" and ran:
>
> : count-into ( seq hash -- )
>   [ [ [ drop 0 ] cache 1+ ] 2keep set-at ] curry each ;
>
> : count ( seq -- hash ) H{ } clone tuck count-into ;
>
> : items ( hash -- seq ) [ { } 2sequence ] { } assoc>map ;
>
> : sorted ( seq -- sortedseq ) [ second swap second <=> ] sort ;
>
> : analyze ( seq n -- seq ) >r count items sorted r> head ;
>
> "factor.strings" <file-reader> lines 10 analyze .
>
> It looks like those strings are present *a lot* of times in the image:
>
> {
>     { "stack_chain" 1137 }
>     { "cards_offset" 855 }
>     { "alien_offset" 564 }
>     { "nursery" 509 }
>     { "simple_gc" 508 }
>     { "to_cell" 416 }
>     { "to_fixnum" 390 }
>     { "PGe G" 150 }
>     { "box_signed_4" 140 }
>     { "to_double" 139 }
> }
>
> Wouldn't it be better to intern strings as is done in Java class
> files?  Strings are immutable (as long as they are not passed to a
> foreign function).
>
>   Sam
> --
> Samuel Tardieu -- [EMAIL PROTECTED] -- http://www.rfc1149.net/
>
>
> -------------------------------------------------------------------------
> This SF.net email is sponsored by: Microsoft
> Defy all challenges. Microsoft(R) Visual Studio 2005.
> http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
> _______________________________________________
> Factor-talk mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/factor-talk
>

-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Factor-talk mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/factor-talk

Reply via email to