ok, here is gprof output from newlines/no newlines
[newlines]
% cumulative self self total
time seconds seconds calls s/call s/call name
19.03 0.67 0.67 1 0.67 3.20 MainLoop
17.61 1.29 0.62 500031 0.00 0.00 yylex
15.63 1.84 0.55 1500094 0.00 0.00 GetVariable
11.08 2.23 0.39 250018 0.00 0.00 SendQuery
4.26 2.38 0.15 750051 0.00 0.00 GetVariableBool
3.41 2.50 0.12 250024 0.00 0.00 SetVariable
2.56 2.59 0.09 250015 0.00 0.00 gets_fromFile
2.27 2.67 0.08 750044 0.00 0.00
yy_switch_to_buffer
2.27 2.75 0.08 500031 0.00 0.00 psql_scan
2.27 2.83 0.08 pg_strcasecmp
1.70 2.89 0.06 4250078 0.00 0.00 emit
1.70 2.95 0.06 500031 0.00 0.00 VariableEquals
1.70 3.01 0.06 250018 0.00 0.00 AcceptResult
1.42 3.06 0.05 250018 0.00 0.00 ResetCancelConn
[no newlines]
% cumulative self self total
time seconds seconds calls s/call s/call name
23.01 0.26 0.26 250019 0.00 0.00 yylex
19.47 0.48 0.22 250018 0.00 0.00 SendQuery
11.50 0.61 0.13 1000070 0.00 0.00 GetVariable
9.73 0.72 0.11 250042 0.00 0.00 pg_strdup
9.73 0.83 0.11 250024 0.00 0.00 SetVariable
6.19 0.90 0.07 500039 0.00 0.00 GetVariableBool
5.31 0.96 0.06 pg_strcasecmp
4.42 1.01 0.05 4250078 0.00 0.00 emit
2.65 1.04 0.03 1 0.03 1.01 MainLoop
ok, mingw gprof is claiming MainLoop is a culprit here, along with
general efficiency penalty otherwise in several things (twice many calls
to yylex, 33%more to getvariable, etc). Just for fun I double checked
string len of query input to SendQuery and everything is the right
length.
Same # calls to SendQuery, but 2.5 times call time in newlines
case...anything jump out?
Merlin