Function Declaration

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • Mike Labosh

    #1

    Function Declaration

    How do you define whether the return value of a function is ByRef or ByVal?

    I have a utility class that cleans imported records by doing *really heavy*
    string manipulation in lots of different methods, and it operates on
    DataTables in excess of 100,000 rows of anywhere between 4 and 30 columns.

    I'd like to get the functions to return ByRef for greater speed and memory
    efficiency, but I can't see how to do that.

    --
    Peace & happy computing,

    Mike Labosh, MCSD

    "Mr. McKittrick, after very careful consideration, I have
    come to the conclusion that this new system SUCKS."
    -- General Barringer, "War Games"


  • Scott M.

    #2
    Re: Function Declaration

    I would first suggest that you use a StringBuilder, rather than Strings for
    heavy string manipulation.

    Second, what is your function returning? If it returns a Reference Type,
    then you are only getting a copy of the pointer to the reference type, not a
    copy of the reference type itself.

    "Mike Labosh" <mlabosh@hotmai l.com> wrote in message
    news:O4lxvPDeFH A.3280@TK2MSFTN GP09.phx.gbl...[color=blue]
    > How do you define whether the return value of a function is ByRef or
    > ByVal?
    >
    > I have a utility class that cleans imported records by doing *really
    > heavy* string manipulation in lots of different methods, and it operates
    > on DataTables in excess of 100,000 rows of anywhere between 4 and 30
    > columns.
    >
    > I'd like to get the functions to return ByRef for greater speed and memory
    > efficiency, but I can't see how to do that.
    >
    > --
    > Peace & happy computing,
    >
    > Mike Labosh, MCSD
    >
    > "Mr. McKittrick, after very careful consideration, I have
    > come to the conclusion that this new system SUCKS."
    > -- General Barringer, "War Games"
    >[/color]


    Comment

    • Mike Labosh

      #3
      Re: Function Declaration

      >I would first suggest that you use a StringBuilder, rather than Strings for[color=blue]
      >heavy string manipulation.[/color]

      Actually, most of the stuff uses Regex's. But I do use StringBuilder where
      I can. StringBuilder let me do one of our export batches in half the time
      it used to take :):):)
      [color=blue]
      > Second, what is your function returning? If it returns a Reference Type,
      > then you are only getting a copy of the pointer to the reference type, not
      > a copy of the reference type itself.[/color]

      Pretty much all the method prototypes in this class look like this:

      Public Function CleanSomething( ByRef value As String) As String

      There is one method that returns a Structure, also.

      I just want to make sure I'm returning the return value ByRef for greater
      speed / efficiency.

      --
      Peace & happy computing,

      Mike Labosh, MCSD

      "Mr. McKittrick, after very careful consideration, I have
      come to the conclusion that this new system SUCKS."
      -- General Barringer, "War Games"


      Comment

      • Mythran

        #4
        Re: Function Declaration


        "Mike Labosh" <mlabosh@hotmai l.com> wrote in message
        news:uHx7kbDeFH A.228@TK2MSFTNG P12.phx.gbl...[color=blue][color=green]
        > >I would first suggest that you use a StringBuilder, rather than Strings
        > >for heavy string manipulation.[/color]
        >
        > Actually, most of the stuff uses Regex's. But I do use StringBuilder
        > where I can. StringBuilder let me do one of our export batches in half
        > the time it used to take :):):)
        >[color=green]
        >> Second, what is your function returning? If it returns a Reference Type,
        >> then you are only getting a copy of the pointer to the reference type,
        >> not a copy of the reference type itself.[/color]
        >
        > Pretty much all the method prototypes in this class look like this:
        >
        > Public Function CleanSomething( ByRef value As String) As String
        >
        > There is one method that returns a Structure, also.
        >
        > I just want to make sure I'm returning the return value ByRef for greater
        > speed / efficiency.
        >
        > --
        > Peace & happy computing,
        >
        > Mike Labosh, MCSD
        >
        > "Mr. McKittrick, after very careful consideration, I have
        > come to the conclusion that this new system SUCKS."
        > -- General Barringer, "War Games"
        >[/color]

        A function's return value can't be ByRef or ByVal. It's just what it
        returns. Now, the parameters that go into the function can be ByRef or
        ByVal.

        HTH,

        Mythran

        Comment

        • Mike Labosh

          #5
          Re: Function Declaration

          > A function's return value can't be ByRef or ByVal. It's just what it[color=blue]
          > returns. Now, the parameters that go into the function can be ByRef or
          > ByVal.[/color]

          That's what I was afraid of. Oh well, you win some, you lose some. I was
          just hoping to squeak a little more performance out of this.

          --
          Peace & happy computing,

          Mike Labosh, MCSD

          "Mr. McKittrick, after very careful consideration, I have
          come to the conclusion that this new system SUCKS."
          -- General Barringer, "War Games"


          Comment

          • Scott M.

            #6
            Re: Function Declaration

            > A function's return value can't be ByRef or ByVal. It's just what it[color=blue]
            > returns. Now, the parameters that go into the function can be ByRef or
            > ByVal.[/color]

            Not necessarily true for situations when a function returns an object
            instance.

            If string objects are being created in the function and then the string
            object variable is returned, a copy of the pointer gets created if the
            return value is captured like this:

            Dim X As String = function()

            In any event, you don't have to worry about copies of the actual data being
            created and passed back.


            Comment

            • Mythran

              #7
              Re: Function Declaration


              "Mike Labosh" <mlabosh@hotmai l.com> wrote in message
              news:eB0Ps5DeFH A.2604@TK2MSFTN GP15.phx.gbl...[color=blue][color=green]
              >> A function's return value can't be ByRef or ByVal. It's just what it
              >> returns. Now, the parameters that go into the function can be ByRef or
              >> ByVal.[/color]
              >
              > That's what I was afraid of. Oh well, you win some, you lose some. I was
              > just hoping to squeak a little more performance out of this.
              >
              > --
              > Peace & happy computing,
              >
              > Mike Labosh, MCSD
              >
              > "Mr. McKittrick, after very careful consideration, I have
              > come to the conclusion that this new system SUCKS."
              > -- General Barringer, "War Games"
              >[/color]

              One way to squeak a little more performance is to read/write only what you
              need. Instead of loading all data into a data table or data set, you can
              load the strings you need into strings, manipulate what you need, write to
              the store. If you are using files, read only what you need into a string,
              manipulate it, and write it back out. It sounds as though you are loading
              from a database, in this case, do you really need to do all of the
              manipulation using client code? Just for kicks, and to see if we can speed
              this up a lot, post a little of the logic you are using (code) for
              manipulating the data. It might be possible to do all this using SQL
              Server, which turns out to be a lot faster for manipulating data in the
              database (go figure, a database is faster at manipulating data?!? :P )

              Mythran

              Comment

              • Jay B. Harlow [MVP - Outlook]

                #8
                Re: Function Declaration

                Mike,
                In addition to the other comments.

                I would define the function as:

                | Public Function CleanSomething( ByVal value As String) As String

                To help ensure the "fastest" possible function! Remember that ByVal & ByRef
                refer to how parameters are passed, while Reference Type & Value Type refer
                to how values are stored.

                ByVal passes a copy of the variable as the parameter.
                ByRef passes a reference to the variable as the parameter.

                Reference Types exist on the heap, a variable holds a reference to the
                actual object on the heap.
                Value Types exist on the stack or nested inside another object, a variable
                holds the actual value.


                String is a Reference type, which means that a String variable or parameter
                holds a reference to the actual string object on the Heap. If you pass a
                String ByRef to a routine, you are passing a reference to the variable that
                holds a reference to the actual string object on the heap. In other words a
                reference to a reference to an object. If you pass a String ByVal you
                passing the reference itself. In other words a reference to an object.

                I would expect ByRef String to be slightly slower as you are dereferencing a
                reference each time you want to access the String's value.

                When you define your function "As String" you are receiving a copy of the
                reference to the actual string object on the heap. There is only one
                instance of the String on the heap.

                Hope this helps
                Jay

                "Mike Labosh" <mlabosh@hotmai l.com> wrote in message
                news:uHx7kbDeFH A.228@TK2MSFTNG P12.phx.gbl...
                | >I would first suggest that you use a StringBuilder, rather than Strings
                for
                | >heavy string manipulation.
                |
                | Actually, most of the stuff uses Regex's. But I do use StringBuilder
                where
                | I can. StringBuilder let me do one of our export batches in half the time
                | it used to take :):):)
                |
                | > Second, what is your function returning? If it returns a Reference Type,
                | > then you are only getting a copy of the pointer to the reference type,
                not
                | > a copy of the reference type itself.
                |
                | Pretty much all the method prototypes in this class look like this:
                |
                | Public Function CleanSomething( ByRef value As String) As String
                |
                | There is one method that returns a Structure, also.
                |
                | I just want to make sure I'm returning the return value ByRef for greater
                | speed / efficiency.
                |
                | --
                | Peace & happy computing,
                |
                | Mike Labosh, MCSD
                |
                | "Mr. McKittrick, after very careful consideration, I have
                | come to the conclusion that this new system SUCKS."
                | -- General Barringer, "War Games"
                |
                |


                Comment

                • Scott M.

                  #9
                  Re: Function Declaration

                  >"If you pass a String ByVal you[color=blue]
                  >passing the reference itself. In other words a reference to an object."[/color]

                  Just a little clarification here, you are actually passing a COPY of the
                  original reference to the object, not the original reference itself.

                  Sub One()
                  Dim y As String = "Test"
                  Two(y)
                  End Sub

                  Sub Two(ByVal x as String)
                  'The parameter "x" is a copy of the pointer "y" that points to the
                  String object on the heap.
                  'There are now two pointers that point to the one String object
                  'Only the "x" pointer can be used in this procedure, and only the "y"
                  pointer can be used in the "One" procedure.
                  End Sub







                  "Jay B. Harlow [MVP - Outlook]" <Jay_Harlow_MVP @msn.com> wrote in message
                  news:uurRDHEeFH A.2180@TK2MSFTN GP12.phx.gbl...[color=blue]
                  > Mike,
                  > In addition to the other comments.
                  >
                  > I would define the function as:
                  >
                  > | Public Function CleanSomething( ByVal value As String) As String
                  >
                  > To help ensure the "fastest" possible function! Remember that ByVal &
                  > ByRef
                  > refer to how parameters are passed, while Reference Type & Value Type
                  > refer
                  > to how values are stored.
                  >
                  > ByVal passes a copy of the variable as the parameter.
                  > ByRef passes a reference to the variable as the parameter.
                  >
                  > Reference Types exist on the heap, a variable holds a reference to the
                  > actual object on the heap.
                  > Value Types exist on the stack or nested inside another object, a variable
                  > holds the actual value.
                  >
                  >
                  > String is a Reference type, which means that a String variable or
                  > parameter
                  > holds a reference to the actual string object on the Heap. If you pass a
                  > String ByRef to a routine, you are passing a reference to the variable
                  > that
                  > holds a reference to the actual string object on the heap. In other words
                  > a
                  > reference to a reference to an object. If you pass a String ByVal you
                  > passing the reference itself. In other words a reference to an object.
                  >
                  > I would expect ByRef String to be slightly slower as you are dereferencing
                  > a
                  > reference each time you want to access the String's value.
                  >
                  > When you define your function "As String" you are receiving a copy of the
                  > reference to the actual string object on the heap. There is only one
                  > instance of the String on the heap.
                  >
                  > Hope this helps
                  > Jay
                  >
                  > "Mike Labosh" <mlabosh@hotmai l.com> wrote in message
                  > news:uHx7kbDeFH A.228@TK2MSFTNG P12.phx.gbl...
                  > | >I would first suggest that you use a StringBuilder, rather than Strings
                  > for
                  > | >heavy string manipulation.
                  > |
                  > | Actually, most of the stuff uses Regex's. But I do use StringBuilder
                  > where
                  > | I can. StringBuilder let me do one of our export batches in half the
                  > time
                  > | it used to take :):):)
                  > |
                  > | > Second, what is your function returning? If it returns a Reference
                  > Type,
                  > | > then you are only getting a copy of the pointer to the reference type,
                  > not
                  > | > a copy of the reference type itself.
                  > |
                  > | Pretty much all the method prototypes in this class look like this:
                  > |
                  > | Public Function CleanSomething( ByRef value As String) As String
                  > |
                  > | There is one method that returns a Structure, also.
                  > |
                  > | I just want to make sure I'm returning the return value ByRef for
                  > greater
                  > | speed / efficiency.
                  > |
                  > | --
                  > | Peace & happy computing,
                  > |
                  > | Mike Labosh, MCSD
                  > |
                  > | "Mr. McKittrick, after very careful consideration, I have
                  > | come to the conclusion that this new system SUCKS."
                  > | -- General Barringer, "War Games"
                  > |
                  > |
                  >
                  >[/color]


                  Comment

                  • Dennis

                    #10
                    Re: Function Declaration

                    If I pass a structure byval that contains both reference and value types,
                    what exactly am I passing and if I change a structure field in my function,
                    is the structure field in the calling procedure changed also?
                    --
                    Dennis in Houston


                    "Jay B. Harlow [MVP - Outlook]" wrote:
                    [color=blue]
                    > Mike,
                    > In addition to the other comments.
                    >
                    > I would define the function as:
                    >
                    > | Public Function CleanSomething( ByVal value As String) As String
                    >
                    > To help ensure the "fastest" possible function! Remember that ByVal & ByRef
                    > refer to how parameters are passed, while Reference Type & Value Type refer
                    > to how values are stored.
                    >
                    > ByVal passes a copy of the variable as the parameter.
                    > ByRef passes a reference to the variable as the parameter.
                    >
                    > Reference Types exist on the heap, a variable holds a reference to the
                    > actual object on the heap.
                    > Value Types exist on the stack or nested inside another object, a variable
                    > holds the actual value.
                    >
                    >
                    > String is a Reference type, which means that a String variable or parameter
                    > holds a reference to the actual string object on the Heap. If you pass a
                    > String ByRef to a routine, you are passing a reference to the variable that
                    > holds a reference to the actual string object on the heap. In other words a
                    > reference to a reference to an object. If you pass a String ByVal you
                    > passing the reference itself. In other words a reference to an object.
                    >
                    > I would expect ByRef String to be slightly slower as you are dereferencing a
                    > reference each time you want to access the String's value.
                    >
                    > When you define your function "As String" you are receiving a copy of the
                    > reference to the actual string object on the heap. There is only one
                    > instance of the String on the heap.
                    >
                    > Hope this helps
                    > Jay
                    >
                    > "Mike Labosh" <mlabosh@hotmai l.com> wrote in message
                    > news:uHx7kbDeFH A.228@TK2MSFTNG P12.phx.gbl...
                    > | >I would first suggest that you use a StringBuilder, rather than Strings
                    > for
                    > | >heavy string manipulation.
                    > |
                    > | Actually, most of the stuff uses Regex's. But I do use StringBuilder
                    > where
                    > | I can. StringBuilder let me do one of our export batches in half the time
                    > | it used to take :):):)
                    > |
                    > | > Second, what is your function returning? If it returns a Reference Type,
                    > | > then you are only getting a copy of the pointer to the reference type,
                    > not
                    > | > a copy of the reference type itself.
                    > |
                    > | Pretty much all the method prototypes in this class look like this:
                    > |
                    > | Public Function CleanSomething( ByRef value As String) As String
                    > |
                    > | There is one method that returns a Structure, also.
                    > |
                    > | I just want to make sure I'm returning the return value ByRef for greater
                    > | speed / efficiency.
                    > |
                    > | --
                    > | Peace & happy computing,
                    > |
                    > | Mike Labosh, MCSD
                    > |
                    > | "Mr. McKittrick, after very careful consideration, I have
                    > | come to the conclusion that this new system SUCKS."
                    > | -- General Barringer, "War Games"
                    > |
                    > |
                    >
                    >
                    >[/color]

                    Comment

                    • Scott M.

                      #11
                      Re: Function Declaration

                      Structures are Value Types. If you pass a Value Type ByVal, you get a copy
                      of the structure. Changes to the passed structure do not affect the
                      original structure.


                      "Dennis" <Dennis@discuss ions.microsoft. com> wrote in message
                      news:30779613-D99E-4EEB-938E-777319F0666B@mi crosoft.com...[color=blue]
                      > If I pass a structure byval that contains both reference and value types,
                      > what exactly am I passing and if I change a structure field in my
                      > function,
                      > is the structure field in the calling procedure changed also?
                      > --
                      > Dennis in Houston
                      >
                      >
                      > "Jay B. Harlow [MVP - Outlook]" wrote:
                      >[color=green]
                      >> Mike,
                      >> In addition to the other comments.
                      >>
                      >> I would define the function as:
                      >>
                      >> | Public Function CleanSomething( ByVal value As String) As String
                      >>
                      >> To help ensure the "fastest" possible function! Remember that ByVal &
                      >> ByRef
                      >> refer to how parameters are passed, while Reference Type & Value Type
                      >> refer
                      >> to how values are stored.
                      >>
                      >> ByVal passes a copy of the variable as the parameter.
                      >> ByRef passes a reference to the variable as the parameter.
                      >>
                      >> Reference Types exist on the heap, a variable holds a reference to the
                      >> actual object on the heap.
                      >> Value Types exist on the stack or nested inside another object, a
                      >> variable
                      >> holds the actual value.
                      >>
                      >>
                      >> String is a Reference type, which means that a String variable or
                      >> parameter
                      >> holds a reference to the actual string object on the Heap. If you pass a
                      >> String ByRef to a routine, you are passing a reference to the variable
                      >> that
                      >> holds a reference to the actual string object on the heap. In other words
                      >> a
                      >> reference to a reference to an object. If you pass a String ByVal you
                      >> passing the reference itself. In other words a reference to an object.
                      >>
                      >> I would expect ByRef String to be slightly slower as you are
                      >> dereferencing a
                      >> reference each time you want to access the String's value.
                      >>
                      >> When you define your function "As String" you are receiving a copy of the
                      >> reference to the actual string object on the heap. There is only one
                      >> instance of the String on the heap.
                      >>
                      >> Hope this helps
                      >> Jay
                      >>
                      >> "Mike Labosh" <mlabosh@hotmai l.com> wrote in message
                      >> news:uHx7kbDeFH A.228@TK2MSFTNG P12.phx.gbl...
                      >> | >I would first suggest that you use a StringBuilder, rather than
                      >> Strings
                      >> for
                      >> | >heavy string manipulation.
                      >> |
                      >> | Actually, most of the stuff uses Regex's. But I do use StringBuilder
                      >> where
                      >> | I can. StringBuilder let me do one of our export batches in half the
                      >> time
                      >> | it used to take :):):)
                      >> |
                      >> | > Second, what is your function returning? If it returns a Reference
                      >> Type,
                      >> | > then you are only getting a copy of the pointer to the reference
                      >> type,
                      >> not
                      >> | > a copy of the reference type itself.
                      >> |
                      >> | Pretty much all the method prototypes in this class look like this:
                      >> |
                      >> | Public Function CleanSomething( ByRef value As String) As String
                      >> |
                      >> | There is one method that returns a Structure, also.
                      >> |
                      >> | I just want to make sure I'm returning the return value ByRef for
                      >> greater
                      >> | speed / efficiency.
                      >> |
                      >> | --
                      >> | Peace & happy computing,
                      >> |
                      >> | Mike Labosh, MCSD
                      >> |
                      >> | "Mr. McKittrick, after very careful consideration, I have
                      >> | come to the conclusion that this new system SUCKS."
                      >> | -- General Barringer, "War Games"
                      >> |
                      >> |
                      >>
                      >>
                      >>[/color][/color]


                      Comment

                      • Jay B. Harlow [MVP - Outlook]

                        #12
                        Re: Function Declaration

                        Dennis,
                        | If I pass a structure byval that contains both reference and value types,
                        | what exactly am I passing
                        A structure is a value type, you are receiving a copy of all the values. If
                        the structure contains a String field, you get a copy of the reference to a
                        single copy of the String object on the heap.

                        | if I change a structure field in my function,
                        | is the structure field in the calling procedure changed also?
                        You are changing your copy of the structure values, not the original.

                        Hope this helps
                        Jay

                        "Dennis" <Dennis@discuss ions.microsoft. com> wrote in message
                        news:30779613-D99E-4EEB-938E-777319F0666B@mi crosoft.com...
                        | If I pass a structure byval that contains both reference and value types,
                        | what exactly am I passing and if I change a structure field in my
                        function,
                        | is the structure field in the calling procedure changed also?
                        | --
                        | Dennis in Houston
                        |
                        |
                        | "Jay B. Harlow [MVP - Outlook]" wrote:
                        |
                        | > Mike,
                        | > In addition to the other comments.
                        | >
                        | > I would define the function as:
                        | >
                        | > | Public Function CleanSomething( ByVal value As String) As String
                        | >
                        | > To help ensure the "fastest" possible function! Remember that ByVal &
                        ByRef
                        | > refer to how parameters are passed, while Reference Type & Value Type
                        refer
                        | > to how values are stored.
                        | >
                        | > ByVal passes a copy of the variable as the parameter.
                        | > ByRef passes a reference to the variable as the parameter.
                        | >
                        | > Reference Types exist on the heap, a variable holds a reference to the
                        | > actual object on the heap.
                        | > Value Types exist on the stack or nested inside another object, a
                        variable
                        | > holds the actual value.
                        | >
                        | >
                        | > String is a Reference type, which means that a String variable or
                        parameter
                        | > holds a reference to the actual string object on the Heap. If you pass a
                        | > String ByRef to a routine, you are passing a reference to the variable
                        that
                        | > holds a reference to the actual string object on the heap. In other
                        words a
                        | > reference to a reference to an object. If you pass a String ByVal you
                        | > passing the reference itself. In other words a reference to an object.
                        | >
                        | > I would expect ByRef String to be slightly slower as you are
                        dereferencing a
                        | > reference each time you want to access the String's value.
                        | >
                        | > When you define your function "As String" you are receiving a copy of
                        the
                        | > reference to the actual string object on the heap. There is only one
                        | > instance of the String on the heap.
                        | >
                        | > Hope this helps
                        | > Jay
                        | >
                        | > "Mike Labosh" <mlabosh@hotmai l.com> wrote in message
                        | > news:uHx7kbDeFH A.228@TK2MSFTNG P12.phx.gbl...
                        | > | >I would first suggest that you use a StringBuilder, rather than
                        Strings
                        | > for
                        | > | >heavy string manipulation.
                        | > |
                        | > | Actually, most of the stuff uses Regex's. But I do use StringBuilder
                        | > where
                        | > | I can. StringBuilder let me do one of our export batches in half the
                        time
                        | > | it used to take :):):)
                        | > |
                        | > | > Second, what is your function returning? If it returns a Reference
                        Type,
                        | > | > then you are only getting a copy of the pointer to the reference
                        type,
                        | > not
                        | > | > a copy of the reference type itself.
                        | > |
                        | > | Pretty much all the method prototypes in this class look like this:
                        | > |
                        | > | Public Function CleanSomething( ByRef value As String) As String
                        | > |
                        | > | There is one method that returns a Structure, also.
                        | > |
                        | > | I just want to make sure I'm returning the return value ByRef for
                        greater
                        | > | speed / efficiency.
                        | > |
                        | > | --
                        | > | Peace & happy computing,
                        | > |
                        | > | Mike Labosh, MCSD
                        | > |
                        | > | "Mr. McKittrick, after very careful consideration, I have
                        | > | come to the conclusion that this new system SUCKS."
                        | > | -- General Barringer, "War Games"
                        | > |
                        | > |
                        | >
                        | >
                        | >


                        Comment

                        • Cor Ligthert

                          #13
                          Re: Function Declaration

                          Jay,
                          [color=blue]
                          >
                          > I would expect ByRef String to be slightly slower as you are dereferencing
                          > a
                          > reference each time you want to access the String's value.
                          >[/color]
                          Can you give us how many picoseconds on a 2Ghz Intel P4 computer with dual
                          channels.

                          :-))

                          Cor


                          Comment

                          • Jay B. Harlow [MVP - Outlook]

                            #14
                            Re: Function Declaration

                            Cor,
                            I did say *slightly* slower! ;-)

                            Jay

                            "Cor Ligthert" <notmyfirstname @planet.nl> wrote in message
                            news:ON7cIHIeFH A.712@TK2MSFTNG P12.phx.gbl...
                            | Jay,
                            |
                            | >
                            | > I would expect ByRef String to be slightly slower as you are
                            dereferencing
                            | > a
                            | > reference each time you want to access the String's value.
                            | >
                            | Can you give us how many picoseconds on a 2Ghz Intel P4 computer with dual
                            | channels.
                            |
                            | :-))
                            |
                            | Cor
                            |
                            |


                            Comment

                            • Mike Labosh

                              #15
                              Re: Function Declaration

                              > Can you give us how many picoseconds on a 2Ghz Intel P4 computer with dual[color=blue]
                              > channels.[/color]

                              Go ahead and make fun all you want. If I can save a picosecond on each
                              iteration of this giant loop, running on a 4-CPU server, I will :)

                              --
                              Peace & happy computing,

                              Mike Labosh, MCSD

                              "Mr. McKittrick, after very careful consideration, I have
                              come to the conclusion that this new system SUCKS."
                              -- General Barringer, "War Games"


                              Comment

                              Working...