Logging speed improvements.

We now use Google's replacement functions for slow printf-based
num-to-ascii conversion.
This commit is contained in:
Robin Sommer 2011-10-06 15:55:45 -07:00
parent 3ecd872291
commit 8aaccf1c95
8 changed files with 426 additions and 9 deletions

View file

@ -59,6 +59,7 @@ LogWriterAscii::LogWriterAscii()
memcpy(header_prefix, BifConst::LogAscii::header_prefix->Bytes(),
header_prefix_len);
desc.SetEscape(separator, separator_len);
}
LogWriterAscii::~LogWriterAscii()
@ -184,8 +185,8 @@ bool LogWriterAscii::DoWriteOne(ODesc* desc, LogVal* val, const LogField* field)
case TYPE_TIME:
case TYPE_INTERVAL:
char buf[32];
snprintf(buf, sizeof(buf), "%.6f", val->val.double_val);
char buf[256];
modp_dtoa(val->val.double_val, buf, 6);
desc->Add(buf);
break;
@ -261,8 +262,7 @@ bool LogWriterAscii::DoWrite(int num_fields, const LogField* const * fields,
if ( ! file )
DoInit(Path(), NumFields(), Fields());
ODesc desc(DESC_READABLE);
desc.SetEscape(separator, separator_len);
desc.Clear();
for ( int i = 0; i < num_fields; i++ )
{