Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. Other Discussions
  3. The Weird and The Wonderful
  4. Yes I know it was me who wrote that...

Yes I know it was me who wrote that...

Scheduled Pinned Locked Moved The Weird and The Wonderful
29 Posts 13 Posters 2 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • Richard DeemingR Richard Deeming

    It's milliseconds, so it was just under 14 seconds, not minutes! ;P I'm running the code in LinqPad[^], and I've tried both with and without optimisations enabled, but it doesn't make a huge difference.


    "These people looked deep within my soul and assigned me a number based on the order in which I joined." - Homer

    A Offline
    A Offline
    Argonia
    wrote on last edited by
    #21

    Yeah i know its in milliseconds but my upper processor forgot that after miliseconds seconds are next not minutes :D I am running it in debug mode with no optimisations.

    Microsoft ... the only place where VARIANT_TRUE != true

    R 1 Reply Last reply
    0
    • OriginalGriffO OriginalGriff

      Interesting: I'm also Win7/64, but .NET 4.0 rather than 4.5. Adding OrdinalIgnoreCase:

              string string1 = File.ReadAllText(@"D:\\Temp\\MyText.txt");
              string string2 = File.ReadAllText(@"D:\\Temp\\MyText.txt");
              int x = 0;
              Stopwatch sw1 = new Stopwatch();
              sw1.Start();
              for (int i = 0; i < 1000; i++)
                  {
                  if (String.Equals(string1, string2, StringComparison.OrdinalIgnoreCase))
                      {
                      x++;
                      }
                  }
              sw1.Stop();
              Console.WriteLine(x);
              x = 0;
              Stopwatch sw2 = new Stopwatch();
              sw2.Start();
              for (int i = 0; i < 1000; i++)
                  {
                  if (String.Compare(string1, string2, true) == 0)
                      {
                      x++;
                      }
                  }
              sw2.Stop();
              Console.WriteLine(x);
              x = 0;
              Stopwatch sw3 = new Stopwatch();
              sw3.Start();
              for (int i = 0; i < 1000; i++)
                  {
                  if (String.Compare(string1, string2, StringComparison.OrdinalIgnoreCase) == 0)
                      {
                      x++;
                      }
                  }
              sw3.Stop();
              Console.WriteLine(x);
              Console.WriteLine("{0}:{1}:{2}", sw1.ElapsedMilliseconds, sw2.ElapsedMilliseconds,sw3.ElapsedMilliseconds);
      

      gives results similar to yours:

      1000
      1000
      1000
      1694:4087:1684

      I'm surprised there is such a difference in performance between our machines: mine isn't anywhere near state of the art - more state of the ark! :laugh:

      J Offline
      J Offline
      Jorgen Andersson
      wrote on last edited by
      #22

      You'll have to redo the test using the same textfile. I believe that's where most of the difference lies.

      Politicians are always realistically manoeuvering for the next election. They are obsolete as fundamental problem-solvers. Buckminster Fuller

      1 Reply Last reply
      0
      • G GuyThiebaut

        if (item.Substring(0, 3).ToLower() != "PF_")

        [Head hangs in shame] :doh: I should have coded:

        if (item.Substring(0, 3).ToLower() != "PF_".ToLower())

        “That which can be asserted without evidence, can be dismissed without evidence.”

        ― Christopher Hitchens

        P Offline
        P Offline
        phil o
        wrote on last edited by
        #23

        I would also have added a couple of .ToString()s somewhere, just to be sure :)

        Women are composed of carbon, hydrogen, oxygen and nitrogen; men are also composed of carbon, hydrogen, oxygen and nitrogen, but in such proportions that force respect.

        1 Reply Last reply
        0
        • G GuyThiebaut

          if (item.Substring(0, 3).ToLower() != "PF_")

          [Head hangs in shame] :doh: I should have coded:

          if (item.Substring(0, 3).ToLower() != "PF_".ToLower())

          “That which can be asserted without evidence, can be dismissed without evidence.”

          ― Christopher Hitchens

          N Offline
          N Offline
          Nagy Vilmos
          wrote on last edited by
          #24

          You really didn't think it through:

          char p = item.charAt[0];
          char f = item.charAt[1]
          char u = item.charAt[1]
          if (p == 'P' || p == 'p' &&
          u == '_' &&
          f == 'f' || p == 'F')
          {
          // you're good to go....
          }

          speramus in juniperus

          Richard DeemingR 1 Reply Last reply
          0
          • N Nagy Vilmos

            You really didn't think it through:

            char p = item.charAt[0];
            char f = item.charAt[1]
            char u = item.charAt[1]
            if (p == 'P' || p == 'p' &&
            u == '_' &&
            f == 'f' || p == 'F')
            {
            // you're good to go....
            }

            speramus in juniperus

            Richard DeemingR Offline
            Richard DeemingR Offline
            Richard Deeming
            wrote on last edited by
            #25

            Nagy Vilmos wrote:

            f == 'f' || p == 'F'

            Well that's just cruel! If you're going to rewrite it, at least make sure it works. :doh:


            "These people looked deep within my soul and assigned me a number based on the order in which I joined." - Homer

            "These people looked deep within my soul and assigned me a number based on the order in which I joined" - Homer

            N 1 Reply Last reply
            0
            • A Argonia

              Yeah i know its in milliseconds but my upper processor forgot that after miliseconds seconds are next not minutes :D I am running it in debug mode with no optimisations.

              Microsoft ... the only place where VARIANT_TRUE != true

              R Offline
              R Offline
              Rob Grainger
              wrote on last edited by
              #26

              "I am running it in debug mode with no optimisations." Why on earth try to benchmark code with no optimisations? Complete waste of time.

              "If you don't fail at least 90 percent of the time, you're not aiming high enough." Alan Kay.

              1 Reply Last reply
              0
              • Richard DeemingR Richard Deeming

                Nagy Vilmos wrote:

                f == 'f' || p == 'F'

                Well that's just cruel! If you're going to rewrite it, at least make sure it works. :doh:


                "These people looked deep within my soul and assigned me a number based on the order in which I joined." - Homer

                N Offline
                N Offline
                Nicholas Marty
                wrote on last edited by
                #27

                how about using the same character twice and the missing semicolons? :D

                1 Reply Last reply
                0
                • OriginalGriffO OriginalGriff

                  Interesting: I'm also Win7/64, but .NET 4.0 rather than 4.5. Adding OrdinalIgnoreCase:

                          string string1 = File.ReadAllText(@"D:\\Temp\\MyText.txt");
                          string string2 = File.ReadAllText(@"D:\\Temp\\MyText.txt");
                          int x = 0;
                          Stopwatch sw1 = new Stopwatch();
                          sw1.Start();
                          for (int i = 0; i < 1000; i++)
                              {
                              if (String.Equals(string1, string2, StringComparison.OrdinalIgnoreCase))
                                  {
                                  x++;
                                  }
                              }
                          sw1.Stop();
                          Console.WriteLine(x);
                          x = 0;
                          Stopwatch sw2 = new Stopwatch();
                          sw2.Start();
                          for (int i = 0; i < 1000; i++)
                              {
                              if (String.Compare(string1, string2, true) == 0)
                                  {
                                  x++;
                                  }
                              }
                          sw2.Stop();
                          Console.WriteLine(x);
                          x = 0;
                          Stopwatch sw3 = new Stopwatch();
                          sw3.Start();
                          for (int i = 0; i < 1000; i++)
                              {
                              if (String.Compare(string1, string2, StringComparison.OrdinalIgnoreCase) == 0)
                                  {
                                  x++;
                                  }
                              }
                          sw3.Stop();
                          Console.WriteLine(x);
                          Console.WriteLine("{0}:{1}:{2}", sw1.ElapsedMilliseconds, sw2.ElapsedMilliseconds,sw3.ElapsedMilliseconds);
                  

                  gives results similar to yours:

                  1000
                  1000
                  1000
                  1694:4087:1684

                  I'm surprised there is such a difference in performance between our machines: mine isn't anywhere near state of the art - more state of the ark! :laugh:

                  L Offline
                  L Offline
                  ledtech3
                  wrote on last edited by
                  #28

                  Could the difference be a extra file system filter driver slowing one down ?

                  1 Reply Last reply
                  0
                  • Richard DeemingR Richard Deeming

                    GuyThiebaut wrote:

                    I should have coded:

                    if (item.Substring(0, 3).ToLower() != "PF_".ToLower())

                    I hope that's a good example of sarcasm! ;P

                    if (string.Compare(item, 0, "PF_", 0, 3, StringComparison.OrdinalIgnoreCase) != 0)


                    "These people looked deep within my soul and assigned me a number based on the order in which I joined." - Homer

                    V Offline
                    V Offline
                    Vladimir Svyatski
                    wrote on last edited by
                    #29

                    I've been always wondering why people just don't use string comparison functions with the case ignoring ability. Many languages have them. Why use ToLower or ToUpper if you don't really need that lowered string? One my colleague once told me that because of the belovers of ToUpper/ToLower the program he had to improve was doing its job during about 11 hours (the program was in C++)!!! After just replacing the appropriate functions with stricmp and similar ones (which compare ignoring the case) the program got the awesome performance boost: it managed to finish its execution in just one hour or such. Taste the difference!

                    lifecycle of a lifecycle of a lifecycle

                    1 Reply Last reply
                    0
                    Reply
                    • Reply as topic
                    Log in to reply
                    • Oldest to Newest
                    • Newest to Oldest
                    • Most Votes


                    • Login

                    • Don't have an account? Register

                    • Login or register to search.
                    • First post
                      Last post
                    0
                    • Categories
                    • Recent
                    • Tags
                    • Popular
                    • World
                    • Users
                    • Groups