Why big buffers for floating doprints?

schroder at papaya.bbn.com schroder at papaya.bbn.com
Sat Mar 17 06:32:00 AEST 1990


We frequently use multitasking, with modest stacks allocated from the
heap.  We recently discovered that "sprintf()" in Sun release 4.x was
overrunning the stack -- using **over 20k of stack** to convert little
numbers like 0.334 and so forth.

A little research with adb uncovered:

    binary_to_decimal_integer:  linkw   a6,#-0x308c	// 12,428 bytes
    binary_to_decimal_fraction: linkw   a6,#-0x3080	// 12,416 bytes
    unpacked_to_decimal:        linkw   a6,#-0x15b0	// 5,552 bytes

Does anyone out there know why it takes over 12K to convert a floating
point number?  Release 3.5 convert a float in under 900 bytes. :-)

Regards,
Ken



More information about the Comp.sys.sun mailing list