Beispiel #1
0
        public void BlobString_Equals()
        {
            var searchForIndex   = StringCount / 4;
            var searchString     = m_Strings[searchForIndex];
            var searchBlobString = new BlobString(searchString);

            var blobStrings = new BlobString[m_Strings.Length];

            for (int i = 0; i < m_Strings.Length; i++)
            {
                blobStrings[i] = new BlobString(m_Strings[i]);
            }

            bool eql;

            // force the jit to compile the equals methods
            foreach (var str in m_Strings)
            {
                eql = searchString.Equals(str);
            }
            foreach (var blobString in blobStrings)
            {
                eql = searchBlobString.Equals(blobString);
            }

            k_Stopwatch.Restart();
            foreach (var str in m_Strings)
            {
                eql = searchString.Equals(str);
            }
            k_Stopwatch.Stop();
            var strTicks = k_Stopwatch.ElapsedTicks;

            k_Stopwatch.Restart();
            foreach (var blobString in blobStrings)
            {
                eql = searchBlobString.Equals(blobString);
            }
            k_Stopwatch.Stop();
            var intStrTicks = k_Stopwatch.ElapsedTicks;

            WriteLog($"Equals(), str {strTicks}, blobString  {intStrTicks}");
            foreach (var t in blobStrings)
            {
                t.Dispose();
            }
        }