Generates XML files for DeltaPro from Amazon invoices
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

113 lines
3.3 KiB

7 years ago
using System;
using libxl;
namespace performance
{
class Program
{
const int maxRow = 20000;
const int maxCol = 256;
static Random rand = new Random();
static string makeString()
{
string s = "";
for (int i = 0; i < 8; ++i) s += (char)(0x61 + rand.Next(26));
return s;
}
static void test(int number)
{
Console.WriteLine("---------------------------------");
if (number == 1)
{
Console.WriteLine(" strings ");
}
else
{
Console.WriteLine(" numbers ");
}
Console.WriteLine("---------------------------------\n");
Book book = new BinBook();
Sheet sheet = book.addSheet("Sheet1");
Console.Write("writing {0:#,###} cells... ", (maxRow - 1) * maxCol);
DateTime t1 = DateTime.Now;
if (number == 1)
{
for (int row = 1; row < maxRow; ++row)
{
for (int col = 0; col < maxCol; ++col)
{
sheet.writeStr(row, col, makeString());
}
}
}
else
{
for (int row = 1; row < maxRow; ++row)
{
for (int col = 0; col < maxCol; ++col)
{
sheet.writeNum(row, col, 1234);
}
}
}
Console.WriteLine("ok");
DateTime t2 = DateTime.Now;
TimeSpan d = t2 - t1;
Console.WriteLine("time: {0} sec", d.TotalSeconds);
double n = (maxRow - 1) * maxCol / d.TotalSeconds;
Console.WriteLine("speed: {0:#,###} cells/sec", n);
Console.WriteLine();
Console.Write("saving... ");
if (number == 1) {
book.save("perfstr.xls");
} else {
book.save("perfnum.xls");
}
Console.WriteLine("ok");
DateTime t3 = DateTime.Now;
Console.WriteLine("time: {0} sec", (t3 - t2).TotalSeconds);
Console.WriteLine();
Console.WriteLine("total time: {0} sec", (t3 - t1).TotalSeconds);
d = t3 - t1;
n = (maxRow - 1) * maxCol / d.TotalSeconds;
Console.WriteLine("speed with saving on disk: {0:#,###} cells/sec\n", n);
GC.Collect();
GC.WaitForPendingFinalizers();
GC.Collect();
}
static void Main(string[] args)
{
try
{
test(0);
test(1);
}
catch (System.Exception e)
{
Console.WriteLine(e.Message);
}
Console.Write("\nPress any key to exit...");
Console.ReadKey();
}
}
}