[Mono-list] Memory allocation problem

Fredrik Hedberg fredrik.hedberg@hedbergs.com
Sun, 16 May 2004 13:01:01 +0200


--=-ukyk1g/0TINNKbrHKiqw
Content-Type: text/plain
Content-Transfer-Encoding: 7bit

While running --profile (see attachment) on a mono application reading
text into an odbc database, the total allocatde memory is reported as 44
MB. In linux (i686) ps/top reports using about 700MB mem and swaps
intensivly. 

Is this a problem with GC/mono or my application code? Does "--profile"
not report memory consumption inside DllImported functions and top/ps
does?

/Fred

--=-ukyk1g/0TINNKbrHKiqw
Content-Disposition: attachment; filename=debug
Content-Type: text/plain; name=debug; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit

Executed successfully
Total time spent compiling 338 methods (sec): 0,1631
Slowest method to compile (sec): 0,06313: System.Console::WriteLine()
Time(ms) Count   P/call(ms) Method name
########################
 38046,153       1  38046,153   .MainClass::execute(Transfer)
  Callers (with count) that contribute at least for 1%:
           1  100 % .MainClass::Main(string[])
########################
 38046,698       1  38046,698   .MainClass::Main(string[])
  Callers (with count) that contribute at least for 1%:
           1  100 % .MainClass::Main(object,intptr,intptr)
########################
 38046,970       1  38046,970   .MainClass::Main(object,intptr,intptr)
  Callers (with count) that contribute at least for 1%:
########################
 20637,581   51006    0,405   Hedbergs.DataTransfer.Adaptors.ODBC.ODBCSink::PutData(object[])
  Callers (with count) that contribute at least for 1%:
       51006  100 % .MainClass::execute(Transfer)
########################
 17030,309   51006    0,334   Hedbergs.DataTransfer.Adaptors.Text.TextSource::GetData()
  Callers (with count) that contribute at least for 1%:
       51006  100 % .MainClass::execute(Transfer)
########################
 16424,405   51006    0,322   System.IO.StreamReader::ReadLine()
  Callers (with count) that contribute at least for 1%:
       51006  100 % Hedbergs.DataTransfer.Adaptors.Text.TextSource::GetData()
########################
 16211,354   51006    0,318   System.Data.Odbc.OdbcCommand::ExecuteNonQuery()
  Callers (with count) that contribute at least for 1%:
       51006  100 % Hedbergs.DataTransfer.Adaptors.ODBC.ODBCSink::PutData(object[])
########################
 15564,726   51006    0,305   System.Data.Odbc.OdbcCommand::ExecSQL(string)
  Callers (with count) that contribute at least for 1%:
       51006  100 % System.Data.Odbc.OdbcCommand::ExecuteNonQuery()
########################
 15430,728   51006    0,303   System.Data.Odbc.OdbcCommand::ExecSQL(string)
  Callers (with count) that contribute at least for 1%:
       51006  100 % System.Data.Odbc.OdbcCommand::ExecSQL(string)
########################
 12742,310   51006    0,250   System.Data.Odbc.libodbc::SQLExecDirect(intptr,string,int)
  Callers (with count) that contribute at least for 1%:
       51006  100 % System.Data.Odbc.OdbcCommand::ExecSQL(string)
########################
 7145,511 2646256    0,003   System.IO.StreamReader::Read()
  Callers (with count) that contribute at least for 1%:
     2646256  100 % System.IO.StreamReader::ReadLine()
########################
 5816,957     648    8,977   System.IO.StreamReader::ReadBuffer()
  Callers (with count) that contribute at least for 1%:
         648  100 % System.IO.StreamReader::Read()
########################
 5814,395     648    8,973   System.IO.StreamReader::ReadBuffer()
  Callers (with count) that contribute at least for 1%:
         648  100 % System.IO.StreamReader::ReadBuffer()
########################
 5764,339     648    8,896   System.IO.FileStream::Read(byte[],int,int)
  Callers (with count) that contribute at least for 1%:
         648  100 % System.IO.StreamReader::ReadBuffer()
########################
 5762,019     648    8,892   System.IO.FileStream::ReadInternal(byte[],int,int)
  Callers (with count) that contribute at least for 1%:
         648  100 % System.IO.FileStream::Read(byte[],int,int)
########################
 5759,764     648    8,889   System.IO.FileStream::ReadInternal(byte[],int,int)
  Callers (with count) that contribute at least for 1%:
         648  100 % System.IO.FileStream::ReadInternal(byte[],int,int)
########################
 5745,311     325   17,678   System.IO.FileStream::RefillBuffer()
  Callers (with count) that contribute at least for 1%:
         325  100 % System.IO.FileStream::ReadInternal(byte[],int,int)
########################
 5744,275     325   17,675   System.IO.FileStream::RefillBuffer()
  Callers (with count) that contribute at least for 1%:
         325  100 % System.IO.FileStream::RefillBuffer()
########################
 5738,958     325   17,658   System.IO.FileStream::ReadData(intptr,byte[],int,int)
  Callers (with count) that contribute at least for 1%:
         325  100 % System.IO.FileStream::RefillBuffer()
########################
 5737,681     325   17,654   System.IO.FileStream::ReadData(intptr,byte[],int,int)
  Callers (with count) that contribute at least for 1%:
         325  100 % System.IO.FileStream::ReadData(intptr,byte[],int,int)
########################
 5736,973     325   17,652   System.IO.MonoIO::Read(intptr,byte[],int,int,MonoIOError&)
  Callers (with count) that contribute at least for 1%:
         325  100 % System.IO.FileStream::ReadData(intptr,byte[],int,int)
########################
 4558,651 2595250    0,002   System.Text.StringBuilder::Append(char)
  Callers (with count) that contribute at least for 1%:
     2595250  100 % System.IO.StreamReader::ReadLine()
########################
 2532,166   51006    0,050   System.Data.Odbc.OdbcConnection::System.Data.IDbConnection.CreateCommand()
  Callers (with count) that contribute at least for 1%:
       51006  100 % Hedbergs.DataTransfer.Adaptors.ODBC.ODBCSink::PutData(object[])
########################
 2477,349   51006    0,049   System.Data.Odbc.OdbcConnection::CreateCommand()
  Callers (with count) that contribute at least for 1%:
       51006  100 % System.Data.Odbc.OdbcConnection::System.Data.IDbConnection.CreateCommand()
########################
 2330,596   51006    0,046   System.Data.Odbc.OdbcConnection::CreateCommand()
  Callers (with count) that contribute at least for 1%:
       51006  100 % System.Data.Odbc.OdbcConnection::CreateCommand()
########################
 2084,290   51006    0,041   System.Data.Odbc.OdbcCommand::.ctor(string,OdbcConnection,OdbcTransaction)
  Callers (with count) that contribute at least for 1%:
       51006  100 % System.Data.Odbc.OdbcConnection::CreateCommand()
########################
 1968,484   51008    0,039   System.Data.Odbc.libodbc::SQLAllocHandle(OdbcHandleType,intptr,intptr&)
  Callers (with count) that contribute at least for 1%:
       51006  99 % System.Data.Odbc.OdbcCommand::ExecSQL(string)
########################
 1951,112   51006    0,038   System.Data.Odbc.OdbcCommand::.ctor(string,OdbcConnection,OdbcTransaction)
  Callers (with count) that contribute at least for 1%:
       51006  100 % System.Data.Odbc.OdbcCommand::.ctor(string,OdbcConnection,OdbcTransaction)
########################
 1883,681   51006    0,037   System.Data.Odbc.OdbcCommand::.ctor(string,OdbcConnection)
  Callers (with count) that contribute at least for 1%:
       51006  100 % System.Data.Odbc.OdbcCommand::.ctor(string,OdbcConnection,OdbcTransaction)
########################
 1635,632   51006    0,032   System.Data.Odbc.OdbcCommand::.ctor(string)
  Callers (with count) that contribute at least for 1%:
       51006  100 % System.Data.Odbc.OdbcCommand::.ctor(string,OdbcConnection)
########################
 1382,422   51006    0,027   System.Data.Odbc.OdbcCommand::.ctor()
  Callers (with count) that contribute at least for 1%:
       51006  100 % System.Data.Odbc.OdbcCommand::.ctor(string)
########################
 1288,421 2595250    0,000   System.String::InternalSetChar(int,char)
  Callers (with count) that contribute at least for 1%:
     2595250  100 % System.Text.StringBuilder::Append(char)
########################
 1050,732   51006    0,021   System.String::Concat(object[])
  Callers (with count) that contribute at least for 1%:
       51006  100 % Hedbergs.DataTransfer.Adaptors.ODBC.ODBCSink::PutData(object[])
########################
 584,777   51006    0,011   System.Data.Odbc.OdbcParameterCollection::.ctor()
  Callers (with count) that contribute at least for 1%:
       51006  100 % System.Data.Odbc.OdbcCommand::.ctor()
########################
 538,307  666427    0,001   System.Object::__icall_wrapper_mono_ldftn(intptr)
  Callers (with count) that contribute at least for 1%:
       51008   7 % System.Data.Odbc.OdbcConnection::get_State()
       51007   7 % System.Object::.ctor()
       51006   7 % System.Data.Odbc.OdbcConnection::get_hDbc()
       51006   7 % System.Data.Odbc.OdbcCommand::get_Connection()
       51006   7 % System.Data.Odbc.OdbcParameterCollection::get_Count()
       51006   7 % System.Data.Odbc.OdbcCommand::ExecSQL(string)
       51006   7 % System.Data.Odbc.OdbcCommand::get_CommandText()
       51006   7 % System.Data.Odbc.OdbcConnection::get_DataReader()
       51006   7 % System.Data.Odbc.OdbcCommand::set_Connection(OdbcConnection)
       51006   7 % System.Data.Odbc.OdbcCommand::set_CommandText(string)
       51006   7 % System.Data.Odbc.OdbcParameterCollection::.ctor()
       51006   7 % System.Data.Odbc.OdbcCommand::.ctor(string,OdbcConnection,OdbcTransaction)
       51006   7 % System.Data.Odbc.OdbcConnection::CreateCommand()
########################
 523,563   51007    0,010   System.ComponentModel.Component::.ctor()
  Callers (with count) that contribute at least for 1%:
       51006  99 % System.Data.Odbc.OdbcCommand::.ctor()
########################
 470,761   51010    0,009   System.String::Split(char[])
  Callers (with count) that contribute at least for 1%:
       51006  99 % Hedbergs.DataTransfer.Adaptors.Text.TextSource::GetData()
########################
 451,769   51006    0,009   System.Data.Odbc.OdbcParameterCollection::.ctor()
  Callers (with count) that contribute at least for 1%:
       51006  100 % System.Data.Odbc.OdbcParameterCollection::.ctor()
########################
 416,594   51010    0,008   System.String::Split(char[],int)
  Callers (with count) that contribute at least for 1%:
       51010  100 % System.String::Split(char[])
########################
 362,617  102010    0,004   System.Text.StringBuilder::InternalEnsureCapacity(int)
  Callers (with count) that contribute at least for 1%:
      102010  100 % System.Text.StringBuilder::Append(char)
########################
 334,679  255062    0,001   System.Object::__icall_wrapper_mono_object_new_specific(intptr)
  Callers (with count) that contribute at least for 1%:
       51007  19 % System.ComponentModel.Component::.ctor()
       51006  19 % System.IO.StreamReader::ReadLine()
       51006  19 % System.Data.Odbc.OdbcConnection::CreateCommand()
       51006  19 % System.Data.Odbc.OdbcCommand::.ctor()
       51006  19 % System.Data.Odbc.OdbcParameterCollection::.ctor()
########################
 288,385   51006    0,006   System.Text.StringBuilder::.ctor()
  Callers (with count) that contribute at least for 1%:
       51006  100 % System.IO.StreamReader::ReadLine()
########################
 282,891  204023    0,001   System.String::InternalAllocateStr(int)
  Callers (with count) that contribute at least for 1%:
      102010  49 % System.Text.StringBuilder::InternalEnsureCapacity(int)
       51006  25 % System.Text.StringBuilder::.ctor(string,int,int,int)
       51006  25 % System.String::Concat(object[])
########################
 277,615   51006    0,005   System.Data.Odbc.OdbcCommand::IDisposable.Dispose()
  Callers (with count) that contribute at least for 1%:
       51006  100 % Hedbergs.DataTransfer.Adaptors.ODBC.ODBCSink::PutData(object[])
########################
 265,400  510096    0,001   System.Object::__icall_wrapper_helper_stelem_ref(Array,int,object)
  Callers (with count) that contribute at least for 1%:
      255030  49 % Hedbergs.DataTransfer.Adaptors.ODBC.ODBCSink::PutData(object[])
      255030  49 % System.String::Concat(object[])
########################
 235,007   51006    0,005   System.Text.StringBuilder::.ctor(string,int,int,int)
  Callers (with count) that contribute at least for 1%:
       51006  100 % System.Text.StringBuilder::.ctor()
########################
 217,843   51006    0,004   System.ComponentModel.Component::Dispose()
  Callers (with count) that contribute at least for 1%:
       51006  100 % System.Data.Odbc.OdbcCommand::IDisposable.Dispose()
########################
 213,831   51006    0,004   System.Data.Odbc.OdbcParameterCollection::get_Count()
  Callers (with count) that contribute at least for 1%:
       51006  100 % System.Data.Odbc.OdbcCommand::ExecSQL(string)
########################
 195,142   51009    0,004   System.Object::__icall_wrapper_mono_string_to_utf8(object)
  Callers (with count) that contribute at least for 1%:
       51006  99 % System.Data.Odbc.libodbc::SQLExecDirect(intptr,string,int)
########################
 175,005   51007    0,003   System.Object::.ctor()
  Callers (with count) that contribute at least for 1%:
       51007  100 % System.ComponentModel.Component::.ctor()
########################
 167,040   51008    0,003   System.Data.Odbc.OdbcConnection::get_State()
  Callers (with count) that contribute at least for 1%:
       51006  99 % System.Data.Odbc.OdbcCommand::ExecuteNonQuery()
########################
 163,148   51006    0,003   System.Data.Odbc.OdbcCommand::get_Connection()
  Callers (with count) that contribute at least for 1%:
       51006  100 % System.Data.Odbc.OdbcCommand::ExecSQL(string)
########################
 161,493   51006    0,003   System.Data.Odbc.OdbcCommand::get_CommandText()
  Callers (with count) that contribute at least for 1%:
       51006  100 % System.Data.Odbc.OdbcCommand::ExecuteNonQuery()
########################
 157,885   51006    0,003   System.Data.Odbc.OdbcCommand::set_CommandText(string)
  Callers (with count) that contribute at least for 1%:
       51006  100 % System.Data.Odbc.OdbcCommand::.ctor(string)
########################
 157,573   51006    0,003   System.Data.Odbc.OdbcCommand::set_Connection(OdbcConnection)
  Callers (with count) that contribute at least for 1%:
       51006  100 % System.Data.Odbc.OdbcCommand::.ctor(string,OdbcConnection)
########################
 158,206  102028    0,002   System.MarshalByRefObject::.ctor()
  Callers (with count) that contribute at least for 1%:
       51007  49 % System.ComponentModel.Component::.ctor()
       51006  49 % System.Data.Odbc.OdbcParameterCollection::.ctor()
########################
 153,481   51006    0,003   System.Data.Odbc.OdbcConnection::get_DataReader()
  Callers (with count) that contribute at least for 1%:
       51006  100 % System.Data.Odbc.OdbcCommand::ExecuteNonQuery()
########################
 154,426   51006    0,003   System.Data.Odbc.OdbcConnection::get_hDbc()
  Callers (with count) that contribute at least for 1%:
       51006  100 % System.Data.Odbc.OdbcCommand::ExecSQL(string)
########################
 136,353  255030    0,001   System.String::InternalStrcpy(string,int,string)
  Callers (with count) that contribute at least for 1%:
      255030  100 % System.String::Concat(object[])
########################
 120,852  255059    0,000   System.Object::.ctor()
  Callers (with count) that contribute at least for 1%:
      102028  40 % System.MarshalByRefObject::.ctor()
       51007  19 % System.Object::.ctor()
       51006  19 % System.Collections.ArrayList::.ctor()
       51006  19 % System.Text.StringBuilder::.ctor(string,int,int,int)
########################
 112,892  255030    0,000   System.String::ToString()
  Callers (with count) that contribute at least for 1%:
      255030  100 % System.String::Concat(object[])
########################
 110,263   51006    0,002   System.Collections.ArrayList::.ctor()
  Callers (with count) that contribute at least for 1%:
       51006  100 % System.Data.Odbc.OdbcParameterCollection::.ctor()
########################
  99,521   51007    0,002   System.GC::SuppressFinalize(object)
  Callers (with count) that contribute at least for 1%:
       51006  99 % System.ComponentModel.Component::Dispose()
########################
  84,912   51006    0,002   System.Data.Odbc.OdbcParameterCollection::get_Count()
  Callers (with count) that contribute at least for 1%:
       51006  100 % System.Data.Odbc.OdbcParameterCollection::get_Count()
########################
  80,203   51005    0,002   System.Text.StringBuilder::ToString()
  Callers (with count) that contribute at least for 1%:
       51005  100 % System.IO.StreamReader::ReadLine()
########################
  79,239       1   79,239   Hedbergs.DataTransfer.Adaptors.ODBC.ODBCSink::PreProcess()
  Callers (with count) that contribute at least for 1%:
           1  100 % .MainClass::execute(Transfer)
########################
  77,714  153027    0,001   System.Object::__stfld_wrapper_System.Object(object,intptr,intptr,intptr,object)
  Callers (with count) that contribute at least for 1%:
       51007  33 % System.ComponentModel.Component::.ctor()
       51006  33 % System.Data.Odbc.OdbcParameterCollection::.ctor()
       51006  33 % System.Data.Odbc.OdbcCommand::.ctor()
########################
  58,069  102011    0,001   System.String::InternalStrcpy(string,int,string,int,int)
  Callers (with count) that contribute at least for 1%:
      102010  99 % System.Text.StringBuilder::InternalEnsureCapacity(int)
########################
  54,948       1   54,948   System.Console::WriteLine()
  Callers (with count) that contribute at least for 1%:
           1  100 % .MainClass::execute(Transfer)
########################
  48,927  102012    0,000   System.Data.Odbc.OdbcCommand::set_CommandText(string)
  Callers (with count) that contribute at least for 1%:
       51006  50 % System.Data.Odbc.OdbcCommand::set_CommandText(string)
       51006  50 % Hedbergs.DataTransfer.Adaptors.ODBC.ODBCSink::PutData(object[])
########################
  46,095     647    0,071   .UTF8Decoder::GetChars(byte[],int,int,char[],int)
  Callers (with count) that contribute at least for 1%:
         647  100 % System.IO.StreamReader::ReadBuffer()
########################
  44,112     647    0,068   System.Text.UTF8Encoding::InternalGetChars(byte[],int,int,char[],int,uint&,uint&,bool,bool)
  Callers (with count) that contribute at least for 1%:
         647  100 % .UTF8Decoder::GetChars(byte[],int,int,char[],int)
########################
  43,673  102011    0,000   System.Text.StringBuilder::get_Length()
  Callers (with count) that contribute at least for 1%:
      102011  100 % System.IO.StreamReader::ReadLine()
########################
  40,643   51009    0,001   System.Object::__icall_wrapper_g_free(intptr)
  Callers (with count) that contribute at least for 1%:
       51006  99 % System.Data.Odbc.libodbc::SQLExecDirect(intptr,string,int)
########################
  38,020       1   38,020   System.Data.Odbc.OdbcConnection::.ctor(string)
  Callers (with count) that contribute at least for 1%:
           1  100 % System.Data.Odbc.OdbcConnection::.ctor(string)
########################
  38,079       1   38,079   System.Data.Odbc.OdbcConnection::.ctor(string)
  Callers (with count) that contribute at least for 1%:
           1  100 % Hedbergs.DataTransfer.Adaptors.ODBC.ODBCSink::PreProcess()
########################
  30,489       6    5,082   System.IO.StreamWriter::Write(string)
  Callers (with count) that contribute at least for 1%:
           3  50 % System.IO.TextWriter::WriteLine()
           2  33 % System.IO.TextWriter::WriteLine(string)
           1  16 % System.IO.SynchronizedWriter::Write(string)
########################
  28,825       1   28,825   System.Data.Odbc.OdbcConnection::Open()
  Callers (with count) that contribute at least for 1%:
           1  100 % Hedbergs.DataTransfer.Adaptors.ODBC.ODBCSink::PreProcess()
########################
  26,899       3    8,966   System.IO.TextWriter::WriteLine()
  Callers (with count) that contribute at least for 1%:
           2  66 % System.IO.TextWriter::WriteLine(string)
           1  33 % System.IO.SynchronizedWriter::WriteLine()
########################
  27,283       1   27,283   System.IO.SynchronizedWriter::WriteLine()
  Callers (with count) that contribute at least for 1%:
           1  100 % System.Console::WriteLine()
########################
  23,811   51006    0,000   System.Data.Odbc.OdbcCommand::get_CommandText()
  Callers (with count) that contribute at least for 1%:
       51006  100 % System.Data.Odbc.OdbcCommand::get_CommandText()
########################
  24,529       1   24,529   Hedbergs.DataTransfer.Adaptors.Text.TextSource::PreProcess()
  Callers (with count) that contribute at least for 1%:
           1  100 % .MainClass::execute(Transfer)
########################
  22,447   51007    0,000   Hedbergs.DataTransfer.Adaptors.Text.TextSource::HasMoreData()
  Callers (with count) that contribute at least for 1%:
       51007  100 % .MainClass::execute(Transfer)
########################
  22,446   51006    0,000   System.Data.Odbc.OdbcConnection::get_hDbc()
  Callers (with count) that contribute at least for 1%:
       51006  100 % System.Data.Odbc.OdbcConnection::get_hDbc()
########################
  23,287       1   23,287   System.IO.StreamReader::.ctor(string)
  Callers (with count) that contribute at least for 1%:
           1  100 % System.IO.StreamReader::.ctor(string)
########################
  24,213       1   24,213   System.IO.File::OpenText(string)
  Callers (with count) that contribute at least for 1%:
           1  100 % Hedbergs.DataTransfer.Adaptors.Text.TextSource::PreProcess()
########################
  25,179   51005    0,000   System.String::InternalSetLength(int)
  Callers (with count) that contribute at least for 1%:
       51005  100 % System.Text.StringBuilder::ToString()
########################
  25,424       1   25,424   System.Data.Odbc.libodbc::SQLConnect(intptr,string,int16,string,int16,string,int16)
  Callers (with count) that contribute at least for 1%:
           1  100 % System.Data.Odbc.OdbcConnection::Open()
########################
  23,266   51006    0,000   System.Data.Odbc.OdbcCommand::Dispose(bool)
  Callers (with count) that contribute at least for 1%:
       51006  100 % System.ComponentModel.Component::Dispose()
########################
  23,619       1   23,619   System.IO.StreamReader::.ctor(string)
  Callers (with count) that contribute at least for 1%:
           1  100 % System.IO.File::OpenText(string)
########################
  22,503   51006    0,000   System.Data.Odbc.OdbcConnection::get_DataReader()
  Callers (with count) that contribute at least for 1%:
       51006  100 % System.Data.Odbc.OdbcConnection::get_DataReader()
########################
  22,588   51006    0,000   System.Data.Odbc.OdbcCommand::get_Connection()
  Callers (with count) that contribute at least for 1%:
       51006  100 % System.Data.Odbc.OdbcCommand::get_Connection()
########################
  21,274   51005    0,000   System.Text.StringBuilder::get_Chars(int)
  Callers (with count) that contribute at least for 1%:
       51005  100 % System.IO.StreamReader::ReadLine()
########################
  21,325       6    3,554   System.IO.StreamWriter::Flush()
  Callers (with count) that contribute at least for 1%:
           6  100 % System.IO.StreamWriter::Write(string)
########################
  21,975       1   21,975   System.Data.Odbc.OdbcConnection::.ctor()
  Callers (with count) that contribute at least for 1%:
           1  100 % System.Data.Odbc.OdbcConnection::.ctor(string)
########################
  22,311   51006    0,000   System.Collections.ArrayList::get_Count()
  Callers (with count) that contribute at least for 1%:
       51006  100 % System.Data.Odbc.OdbcParameterCollection::get_Count()
########################
  22,039   51008    0,000   System.Data.Odbc.OdbcConnection::get_State()
  Callers (with count) that contribute at least for 1%:
       51008  100 % System.Data.Odbc.OdbcConnection::get_State()
########################
  20,837   51006    0,000   System.Data.Odbc.OdbcCommand::set_Connection(OdbcConnection)
  Callers (with count) that contribute at least for 1%:
       51006  100 % System.Data.Odbc.OdbcCommand::set_Connection(OdbcConnection)
########################
  19,409       6    3,235   System.IO.MonoIO::Write(intptr,byte[],int,int,MonoIOError&)
  Callers (with count) that contribute at least for 1%:
           6  100 % System.IO.FileStream::WriteInternal(byte[],int,int)
########################
  19,958       6    3,326   System.IO.FileStream::WriteInternal(byte[],int,int)
  Callers (with count) that contribute at least for 1%:
           6  100 % System.IO.FileStream::Write(byte[],int,int)
########################
  19,417       1   19,417   System.IO.StreamReader::.ctor(string,Encoding,bool,int)
  Callers (with count) that contribute at least for 1%:
           1  100 % System.IO.StreamReader::.ctor(string)
########################
  20,335       6    3,389   System.IO.StreamWriter::FlushBytes()
  Callers (with count) that contribute at least for 1%:
           6  100 % System.IO.StreamWriter::FlushBytes()
########################
  20,463       6    3,411   System.IO.StreamWriter::FlushBytes()
  Callers (with count) that contribute at least for 1%:
           6  100 % System.IO.StreamWriter::Flush()
########################
  19,743       6    3,291   System.IO.FileStream::WriteInternal(byte[],int,int)
  Callers (with count) that contribute at least for 1%:
           6  100 % System.IO.FileStream::WriteInternal(byte[],int,int)
########################
  20,080       6    3,347   System.IO.FileStream::Write(byte[],int,int)
  Callers (with count) that contribute at least for 1%:
           6  100 % System.IO.StreamWriter::FlushBytes()
########################
  12,862     973    0,013   System.IO.FileStream::ReadSegment(byte[],int,int)
  Callers (with count) that contribute at least for 1%:
         973  100 % System.IO.FileStream::ReadInternal(byte[],int,int)
########################
  11,106       1   11,106   System.IO.Path::.cctor(object,intptr,intptr)
  Callers (with count) that contribute at least for 1%:
           1  100 % System.IO.StreamReader::.ctor(string,Encoding,bool,int)
########################
  10,645       1   10,645   System.IO.Path::.cctor()
  Callers (with count) that contribute at least for 1%:
           1  100 % System.IO.Path::.cctor(object,intptr,intptr)
########################
   8,556     653    0,013   System.Buffer::BlockCopy(Array,int,Array,int,int)
  Callers (with count) that contribute at least for 1%:
         647  99 % System.IO.FileStream::ReadSegment(byte[],int,int)
########################
   9,480     973    0,010   System.IO.FileStream::ReadSegment(byte[],int,int)
  Callers (with count) that contribute at least for 1%:
         973  100 % System.IO.FileStream::ReadSegment(byte[],int,int)
########################
   8,692       6    1,449   System.IO.StreamWriter::LowLevelWrite(char[],int,int)
  Callers (with count) that contribute at least for 1%:
           6  100 % System.IO.StreamWriter::Write(string)
########################
   6,952       1    6,952   System.Console::.cctor(object,intptr,intptr)
  Callers (with count) that contribute at least for 1%:
           1  100 % Hedbergs.DataTransfer.Adaptors.ODBC.ODBCSink::PreProcess()
########################
   6,172       1    6,172   System.Console::.cctor()
  Callers (with count) that contribute at least for 1%:
           1  100 % System.Console::.cctor(object,intptr,intptr)
########################
   2,459       1    2,459   Hedbergs.DataTransfer.Adaptors.Text.TextSource::PostProcess()
  Callers (with count) that contribute at least for 1%:
           1  100 % .MainClass::execute(Transfer)
########################
   3,039       1    3,039   System.IO.File::OpenRead(string)
  Callers (with count) that contribute at least for 1%:
           1  100 % System.IO.StreamReader::.ctor(string,Encoding,bool,int)
########################
   3,914       2    1,957   System.IO.TextWriter::WriteLine(string)
  Callers (with count) that contribute at least for 1%:
           2  100 % System.IO.SynchronizedWriter::WriteLine(string)
########################
   4,054       2    2,027   System.Console::WriteLine(string)
  Callers (with count) that contribute at least for 1%:
           1  50 % Hedbergs.DataTransfer.Adaptors.ODBC.ODBCSink::PreProcess()
           1  50 % .MainClass::execute(Transfer)
########################
   3,974       2    1,987   System.IO.SynchronizedWriter::WriteLine(string)
  Callers (with count) that contribute at least for 1%:
           2  100 % System.Console::WriteLine(string)
########################
   1,742       1    1,742   System.IO.FileStream::.ctor(string,FileMode,FileAccess,FileShare,int,bool)
  Callers (with count) that contribute at least for 1%:
           1  100 % System.IO.FileStream::.ctor(string,FileMode,FileAccess,FileShare)
########################
   2,420       1    2,420   System.IO.StreamReader::Close()
  Callers (with count) that contribute at least for 1%:
           1  100 % Hedbergs.DataTransfer.Adaptors.Text.TextSource::PostProcess()
########################
   2,835     341    0,008   System.IO.FileStream::FlushBuffer()
  Callers (with count) that contribute at least for 1%:
         325  95 % System.IO.FileStream::RefillBuffer()
           6   1 % System.IO.FileStream::Flush()
           6   1 % System.IO.FileStream::WriteInternal(byte[],int,int)
           4   1 % System.IO.FileStream::Dispose(bool)
########################
   2,852       1    2,852   System.IO.FileStream::.ctor(string,FileMode,FileAccess,FileShare)
  Callers (with count) that contribute at least for 1%:
           1  100 % System.IO.FileStream::.ctor(string,FileMode,FileAccess,FileShare)
########################
   3,437     653    0,005   System.Buffer::BlockCopyInternal(Array,int,Array,int,int)
  Callers (with count) that contribute at least for 1%:
         653  100 % System.Buffer::BlockCopy(Array,int,Array,int,int)
########################
   1,398       3    0,466   System.IO.StreamWriter::.ctor(Stream,Encoding,int)
  Callers (with count) that contribute at least for 1%:
           2  66 % System.IO.StreamWriter::.ctor(Stream,Encoding)
           1  33 % System.IO.StreamWriter::.ctor(Stream,Encoding,int)
########################
   1,109       6    0,185   System.IO.StreamWriter::LowLevelWrite(char[],int,int)
  Callers (with count) that contribute at least for 1%:
           6  100 % System.IO.StreamWriter::LowLevelWrite(char[],int,int)
########################
   1,308       2    0,654   System.IO.StreamReader::Initialize(Stream,Encoding,bool,int)
  Callers (with count) that contribute at least for 1%:
           1  50 % System.IO.StreamReader::.ctor(string,Encoding,bool,int)
           1  50 % System.IO.StreamReader::.ctor(Stream,Encoding,bool,int)
########################
   1,202       1    1,202   System.String::IndexOf(string)
  Callers (with count) that contribute at least for 1%:
           1  100 % System.Data.Odbc.OdbcConnection::Open()
########################
   1,537       1    1,537   System.IO.StreamWriter::.cctor()
  Callers (with count) that contribute at least for 1%:
           1  100 % System.IO.StreamWriter::.cctor(object,intptr,intptr)
########################
   1,421       1    1,421   System.IO.StreamWriter::.ctor(Stream,Encoding,int)
  Callers (with count) that contribute at least for 1%:
           1  100 % System.IO.StreamWriter::.cctor()
########################
   1,332       1    1,332   System.String::.cctor(object,intptr,intptr)
  Callers (with count) that contribute at least for 1%:
           1  100 % System.IO.StreamReader::.ctor(string)
########################
   1,583       1    1,583   System.IO.Path::GetDirectoryName(string)
  Callers (with count) that contribute at least for 1%:
           1  100 % System.IO.StreamReader::.ctor(string,Encoding,bool,int)
########################
   2,327       1    2,327   System.IO.StreamReader::Dispose(bool)
  Callers (with count) that contribute at least for 1%:
           1  100 % System.IO.StreamReader::Close()
########################
   2,235       1    2,235   System.IO.FileStream::Close()
  Callers (with count) that contribute at least for 1%:
           1  100 % System.IO.StreamReader::Dispose(bool)
########################
   2,922    1306    0,002   System.Buffer::ByteLength(Array)
  Callers (with count) that contribute at least for 1%:
        1306  100 % System.Buffer::BlockCopy(Array,int,Array,int,int)
########################
   2,906       1    2,906   System.IO.FileStream::.ctor(string,FileMode,FileAccess,FileShare)
  Callers (with count) that contribute at least for 1%:
           1  100 % System.IO.File::OpenRead(string)
########################
   1,201    1306    0,001   System.Buffer::ByteLengthInternal(Array)
  Callers (with count) that contribute at least for 1%:
        1306  100 % System.Buffer::ByteLength(Array)
########################
   1,614       1    1,614   System.IO.StreamWriter::.cctor(object,intptr,intptr)
  Callers (with count) that contribute at least for 1%:
           1  100 % System.Console::.cctor()
Total number of calls: 13567804

Allocation profiler
Total mem Method
########################
   19191 KB System.String::InternalAllocateStr(int)
       19191 KB   204023 System.String                                   
  Callers (with count) that contribute at least for 1%:
      102010  49 % System.Text.StringBuilder::InternalEnsureCapacity(int)
       51006  25 % System.Text.StringBuilder::.ctor(string,int,int,int)
       51006  25 % System.String::Concat(object[])
########################
    9950 KB System.String::Split(char[],int)
        8157 KB   255034 System.String                                   
        1793 KB    51010 System.String[]                                 
  Callers (with count) that contribute at least for 1%:
       51010  100 % System.String::Split(char[])
########################
    6376 KB System.Object::__icall_wrapper_mono_object_new_specific(intptr)
        2988 KB    51006 System.Data.Odbc.OdbcCommand                    
        1195 KB    51006 System.Text.StringBuilder                       
         996 KB    51006 System.Collections.ArrayList                    
         796 KB    51006 System.Data.Odbc.OdbcParameterCollection        
         398 KB    51007 System.Object                                   
  Callers (with count) that contribute at least for 1%:
       51007  19 % System.ComponentModel.Component::.ctor()
       51006  19 % System.IO.StreamReader::ReadLine()
       51006  19 % System.Data.Odbc.OdbcConnection::CreateCommand()
       51006  19 % System.Data.Odbc.OdbcCommand::.ctor()
       51006  19 % System.Data.Odbc.OdbcParameterCollection::.ctor()
########################
    3984 KB System.Collections.ArrayList::.ctor()
        3984 KB    51006 System.Object[]                                 
  Callers (with count) that contribute at least for 1%:
       51006  100 % System.Data.Odbc.OdbcParameterCollection::.ctor()
########################
    1793 KB Hedbergs.DataTransfer.Adaptors.ODBC.ODBCSink::PutData(object[])
        1793 KB    51006 System.Object[]                                 
  Callers (with count) that contribute at least for 1%:
       51006  100 % .MainClass::execute(Transfer)
########################
    1793 KB System.String::Concat(object[])
        1793 KB    51006 System.String[]                                 
  Callers (with count) that contribute at least for 1%:
       51006  100 % Hedbergs.DataTransfer.Adaptors.ODBC.ODBCSink::PutData(object[])
########################
     896 KB Hedbergs.DataTransfer.Adaptors.Text.TextSource::GetData()
         896 KB    51006 System.Char[]                                   
  Callers (with count) that contribute at least for 1%:
       51006  100 % .MainClass::execute(Transfer)
Total memory allocated: 44025 KB

--=-ukyk1g/0TINNKbrHKiqw--