On Sun, Jun 19, 2011 at 3:54 PM, Avi Kivity <a...@redhat.com> wrote: > When running kvm-autotest, fputc() is often the second highest (sometimes #1) > function showing up in a profile. This is due to fputc() locking the file > for every byte written. > > Optimize by using fputc_unlocked(). Since the file is local to the caller, > clearly no locking is needed. According to the manual, _GNU_SOURCE is all > that's needed for the function to be present. > > Signed-off-by: Avi Kivity <a...@redhat.com> > --- > hw/vga.c | 6 +++--- > 1 files changed, 3 insertions(+), 3 deletions(-)
"The nonstandard *_unlocked() variants occur on a few Unix systems, and are available in recent glibc. They should probably not be used." I wonder if this will break non-Linux platforms. Perhaps buffer an entire row of pixels instead and only fwrite(3) at the end of the outer loop. Stefan