public void ParseHTMLSpec() { string html; DateTime start = DateTime.Now; System.GC.Collect(); var GC_MemoryStart = System.GC.GetTotalMemory(true); html = Support.GetFile("csquery\\csquery.tests\\resources\\HTML Standard.htm"); for (int i = 0; i < iterationsLoad; i++) { Dom = CQ.Create(html); } var GC_MemoryEnd = System.GC.GetTotalMemory(true); DateTime loaded = DateTime.Now; int divSpan = 0; int randomLength = Dom.Select("p").Eq(22).RenderSelection().Length; var equation = Equations.CreateEquation <int>("2x+2"); for (int i = 0; i < iterationsSelect; i++) { // todo: cache equations once parsed - should speed this up immenseley CQ sel = Dom.Select("div:nth-child(2n+1)"); //CsQuery sel = Dom.Select("div span"); // get length to force it to iterate through everything int len = sel.Length; //equation.SetVariable("x", 12); // var y = equation.Value; } CQ selFinal = Dom.Select("div span"); divSpan = selFinal.Length; DateTime selected = DateTime.Now; for (int i = 0; i < iterationsClone; i++) { CQ c = Dom.Clone(); Assert.AreEqual(divSpan, Dom.Select("div span").Length, "Clone wasn't equal in # of elements"); string cloneContents = c.Select("p").Eq(22).RenderSelection(); Assert.AreEqual(randomLength, cloneContents.Length, "Some random text was right"); } DateTime done = DateTime.Now; TimeSpan loadTime = loaded - start; string result = Dom.Select("div").Length + " div elements"; result += ", " + Dom.Select("*").Length + " total elements"; result += ", " + loadTime.TotalSeconds / iterationsLoad + " seconds to load domain"; result += ", " + (selected - loaded).TotalSeconds / iterationsSelect + " seconds to perform select 'div span' - " + Dom.Select("div span").Length + " elements"; result += ", " + (done - selected).TotalSeconds / iterationsClone + " seconds to cloning"; result += ", " + (GC_MemoryEnd - GC_MemoryStart) + " bytes used by object"; //Debug.WriteLine(result); Assert.Pass(result); }