News:

Masm32 SDK description, downloads and other helpful links
Message to All Guests
NB: Posting URL's See here: Posted URL Change

Main Menu

Sorting strings

Started by RuiLoureiro, May 29, 2014, 06:15:48 AM

Previous topic - Next topic

guga

Rui, your  algo demands that the string have fixed lenght, right ?

I mean, you need to predefine the lenght. Ex:

[MyString: D$ 4
                 B$ "Guga", 0]


Can you do it without the predefinition, and making it works according oinly to the null termination "0" ?

Or it was designed only to work with predefined strings lens ?
Coding in Assembly requires a mix of:
80% of brain, passion, intuition, creativity
10% of programming skills
10% of alcoholic levels in your blood.

My Code Sites:
http://rosasm.freeforums.org
http://winasm.tripod.com

RuiLoureiro

#61
guga, see my reply #42 where we used null terminated and we compare szCopy with _WZ. You are right my strings have a predefined length and they are far better than null terminated. See the results. I predefine the length in this way
---------------------------------------------------
.data
           dd 4              <--- here the length
sguga db "guga",0  -----> it is also null terminated because the system needs it.
---------------------------------------------------
In the next set of tests we may see the results when we want to add one to another. Se quiseres o _WZ eu envio-te.  :t

guga

I´ll read it.

But...if it uses a fixed len, there is no need to also search for the null termination ;) It would be a bit faster if you avoided the check for the zero ending. If it needs only 4 bytes ("Guga") checking the ending 0 (5th byte) is unnecessary since the len (4) is already defined.

Eu gostaria de ver o _WZ sim. Parece interessante para determinados tipos de dados (e não apenas strings). Digo, se vc tirar a checagem pela terminação em zero (ele ficará um pouco mais rápido e tb vai estar em conformidade com a funcionalidade do algoritmo em si), vc pode usar o algoritmo para copiar toda uma gama de dados e não apenas "strings". Principalmente, pq é um meio alternativo (e mais rapido) de se copiar a memória, por exemplo, como um substituto para funções como memcpy.
Coding in Assembly requires a mix of:
80% of brain, passion, intuition, creativity
10% of programming skills
10% of alcoholic levels in your blood.

My Code Sites:
http://rosasm.freeforums.org
http://winasm.tripod.com

RuiLoureiro

#63
guga, claro que eu não testo o zero, só serve para o OS se  e quando for preciso.
Eu já te envio.
note: these procedures doesn't use cmp or test or
         similar instructions but only operations and negative counters.
         (predefined length)

RuiLoureiro

one special word to Gunther: thanks  :t

Gunther

Quote from: RuiLoureiro on June 29, 2014, 07:37:01 AM
one special word to Gunther: thanks  :t

You're welcome.

Gunther
You have to know the facts before you can distort them.

RuiLoureiro

#66
Hi
------------------------------
Adds a string to another
------------------------------

    . ADDAtoB_X is the reference procedure: add only BYTES;
    . all other add DWORDS+BYTES;
    . all follow the same procedures as to copy strings.
    . In these procedures, it is not possible to add
      201 bytes if the maximum is defined for 200.
    . If the string contains 199 bytes and we try to
      add 1000 we add only 1 byte and exit.
    . ADDAtoB_X stringA, stringB    <<<- add A to B

    . In these examples, we add 0,1,2,3,4,15,55,103,203,503,1027
      to one that contains 11 bytes and the maximum is 1100.
   
    Could you post your results, please ?
    Thank you  :t
   
Here are my results
Quote
-----------------------------------------------------
Intel(R) Pentium(R) 4 CPU 3.40GHz (SSE3)
-----------------------------------------------------
***** Time table *****


   2 milliseconds, ADDAtoB_X-       0 bytes
   3 milliseconds, ADDAtoB_XZZEE-   0 bytes
   3 milliseconds, ADDAtoB_XZZE-    0 bytes
   3 milliseconds, ADDAtoB_XZE-     0 bytes
   3 milliseconds, ADDAtoB_X-       2 bytes
   3 milliseconds, ADDAtoB_X-       1 bytes
   3 milliseconds, ADDAtoB_XZZF-    0 bytes
   4 milliseconds, ADDAtoB_XZZF-    2 bytes
   4 milliseconds, ADDAtoB_XZZE-    4 bytes
   4 milliseconds, ADDAtoB_XZZE-    2 bytes
   4 milliseconds, ADDAtoB_XZZE-    1 bytes
   4 milliseconds, ADDAtoB_XZZF-    1 bytes
   4 milliseconds, ADDAtoB_XZE-     4 bytes
   4 milliseconds, ADDAtoB_XZE-     1 bytes
   4 milliseconds, ADDAtoB_XZZF-    4 bytes
   4 milliseconds, ADDAtoB_X-       4 bytes
   4 milliseconds, ADDAtoB_XZZEE-   4 bytes
   4 milliseconds, ADDAtoB_XZZEE-   2 bytes
   4 milliseconds, ADDAtoB_XZZEE-   1 bytes
   5 milliseconds, ADDAtoB_XZZE-    3 bytes
   5 milliseconds, ADDAtoB_XZZF-    3 bytes
   5 milliseconds, ADDAtoB_XZE-     3 bytes
   5 milliseconds, ADDAtoB_XZE-     2 bytes
   5 milliseconds, ADDAtoB_XZZEE-   3 bytes
   
   7 milliseconds, ADDAtoB_XZZEE15 bytes
   7 milliseconds, ADDAtoB_XZZF-   15 bytes
   7 milliseconds, ADDAtoB_XZE-    15 bytes
   7 milliseconds, ADDAtoB_XZZE-   15 bytes   
  11 milliseconds, ADDAtoB_X-      15 bytes
  13 milliseconds, ADDAtoB_X-       3 bytes
 
  36 milliseconds, ADDAtoB_XZZF-   55 bytes
  36 milliseconds, ADDAtoB_XZZEE-  55 bytes
  37 milliseconds, ADDAtoB_XZZE-   55 bytes
  37 milliseconds, ADDAtoB_XZE-    55 bytes
 
  57 milliseconds, ADDAtoB_XZZE-  103 bytes
  58 milliseconds, ADDAtoB_XZZF103 bytes
  58 milliseconds, ADDAtoB_XZZEE- 103 bytes
  59 milliseconds, ADDAtoB_XZE-   103 bytes
  70 milliseconds, ADDAtoB_X-      55 bytes
123 milliseconds, ADDAtoB_X-     103 bytes

127 milliseconds, ADDAtoB_XZZE-  203 bytes
127 milliseconds, ADDAtoB_XZZF203 bytes
127 milliseconds, ADDAtoB_XZZEE- 203 bytes
127 milliseconds, ADDAtoB_XZE-   203 bytes

128 milliseconds, ADDAtoB_XZE-   503 bytes
128 milliseconds, ADDAtoB_XZZEE- 503 bytes
129 milliseconds, ADDAtoB_XZZE-  503 bytes
129 milliseconds, ADDAtoB_XZZF-  503 bytes
202 milliseconds, ADDAtoB_X-     203 bytes
520 milliseconds, ADDAtoB_X-     503 bytes

700 milliseconds, ADDAtoB_XZZEE-1027 bytes
701 milliseconds, ADDAtoB_XZZF- 1027 bytes
701 milliseconds, ADDAtoB_XZE-  1027 bytes
716 milliseconds, ADDAtoB_XZZE- 1027 bytes
1093 milliseconds, ADDAtoB_X-    1027 bytes
********** END III **********

FORTRANS

Hi,

   Three older processors, P-III, Pentium M, and P-MMX.  The
last seems to vary a bit from run to run.  66597 milliseconds
was larger in the first run.

Regards,

Steve N.

Gunther

Rui,

the result is attached.

Gunther
You have to know the facts before you can distort them.

RuiLoureiro

Thank you, Steve  :t
(i am sorry, thank you Dave)
--------------------------------
Results from FORTRANS
--------------------------------
------------------------------------------
???? (SSE1)
------------------------------------------
***** Time table *****

   8 milliseconds, ADDAtoB_X-       0 bytes
  10 milliseconds, ADDAtoB_X-       1 bytes
  13 milliseconds, ADDAtoB_XZZF-    0 bytes
  14 milliseconds, ADDAtoB_X-       2 bytes
  14 milliseconds, ADDAtoB_XZZF-    1 bytes
  14 milliseconds, ADDAtoB_XZZF-    4 bytes
  19 milliseconds, ADDAtoB_XZZF-    2 bytes
  21 milliseconds, ADDAtoB_X-       4 bytes
  22 milliseconds, ADDAtoB_XZZE-    0 bytes
  22 milliseconds, ADDAtoB_XZE-     0 bytes
  24 milliseconds, ADDAtoB_XZE-     1 bytes
  24 milliseconds, ADDAtoB_XZZE-    1 bytes
  24 milliseconds, ADDAtoB_XZZEE-   0 bytes
  26 milliseconds, ADDAtoB_XZZEE-   4 bytes
  27 milliseconds, ADDAtoB_XZZEE-   1 bytes
  28 milliseconds, ADDAtoB_XZZF-   15 bytes
  29 milliseconds, ADDAtoB_XZZE-    4 bytes
  29 milliseconds, ADDAtoB_XZZE-    2 bytes
  29 milliseconds, ADDAtoB_XZE-     2 bytes
  30 milliseconds, ADDAtoB_XZZF-    3 bytes
  32 milliseconds, ADDAtoB_XZZEE-   2 bytes
  35 milliseconds, ADDAtoB_XZE-     4 bytes
  40 milliseconds, ADDAtoB_XZZEE-  15 bytes
  45 milliseconds, ADDAtoB_XZE-     3 bytes
  45 milliseconds, ADDAtoB_XZZE-    3 bytes
  49 milliseconds, ADDAtoB_XZZEE-   3 bytes
  54 milliseconds, ADDAtoB_XZE-    15 bytes
  55 milliseconds, ADDAtoB_XZZE-   15 bytes
  69 milliseconds, ADDAtoB_X-       3 bytes
  74 milliseconds, ADDAtoB_X-      15 bytes
 
134 milliseconds, ADDAtoB_XZZE-   55 bytes
134 milliseconds, ADDAtoB_XZE-    55 bytes
137 milliseconds, ADDAtoB_XZZF-   55 bytes
143 milliseconds, ADDAtoB_XZZEE-  55 bytes

176 milliseconds, ADDAtoB_XZZEE- 103 bytes
177 milliseconds, ADDAtoB_XZE-   103 bytes
178 milliseconds, ADDAtoB_XZZE-  103 bytes
194 milliseconds, ADDAtoB_XZZF-  103 bytes
258 milliseconds, ADDAtoB_X-      55 bytes

295 milliseconds, ADDAtoB_XZZEE- 203 bytes
300 milliseconds, ADDAtoB_XZE-   203 bytes
300 milliseconds, ADDAtoB_XZZE-  203 bytes
346 milliseconds, ADDAtoB_XZZF-  203 bytes
492 milliseconds, ADDAtoB_X-     103 bytes

545 milliseconds, ADDAtoB_XZZF-  503 bytes
683 milliseconds, ADDAtoB_XZZEE- 503 bytes
691 milliseconds, ADDAtoB_XZE-   503 bytes
691 milliseconds, ADDAtoB_XZZE-  503 bytes
831 milliseconds, ADDAtoB_X-     203 bytes

1165 milliseconds, ADDAtoB_XZZF- 1027 bytes
1452 milliseconds, ADDAtoB_XZZEE-1027 bytes
1465 milliseconds, ADDAtoB_XZE-  1027 bytes
1466 milliseconds, ADDAtoB_XZZE- 1027 bytes
2071 milliseconds, ADDAtoB_X-     503 bytes
4481 milliseconds, ADDAtoB_X-    1027 bytes
********** END III **********

-------------------------------------------------------------
Intel(R) Pentium(R) M processor 1.70GHz (SSE2)
-------------------------------------------------------------
***** Time table *****

   4 milliseconds, ADDAtoB_XZZF-    0 bytes
   6 milliseconds, ADDAtoB_XZZF-    2 bytes
   6 milliseconds, ADDAtoB_XZZF-    1 bytes
   6 milliseconds, ADDAtoB_XZZF-    4 bytes
   8 milliseconds, ADDAtoB_XZZF-    3 bytes
   8 milliseconds, ADDAtoB_X-       0 bytes
  10 milliseconds, ADDAtoB_XZZF-   15 bytes
  11 milliseconds, ADDAtoB_XZZE-    1 bytes
  11 milliseconds, ADDAtoB_XZZE-    0 bytes
  11 milliseconds, ADDAtoB_XZE-     2 bytes
  11 milliseconds, ADDAtoB_XZE-     1 bytes
  11 milliseconds, ADDAtoB_XZE-     0 bytes
  11 milliseconds, ADDAtoB_X-       1 bytes
  11 milliseconds, ADDAtoB_XZZE-    2 bytes
  12 milliseconds, ADDAtoB_XZZE-    4 bytes
  12 milliseconds, ADDAtoB_XZZEE-   2 bytes
  12 milliseconds, ADDAtoB_XZZEE-   1 bytes
  12 milliseconds, ADDAtoB_XZZEE-   0 bytes
  12 milliseconds, ADDAtoB_XZE-     4 bytes
  13 milliseconds, ADDAtoB_XZE-     3 bytes
  13 milliseconds, ADDAtoB_XZZEE-   4 bytes
  13 milliseconds, ADDAtoB_XZZE-    3 bytes
  14 milliseconds, ADDAtoB_XZZEE-   3 bytes
  14 milliseconds, ADDAtoB_X-       2 bytes
 
  16 milliseconds, ADDAtoB_XZZEE15 bytes
  18 milliseconds, ADDAtoB_XZZE-   15 bytes
  18 milliseconds, ADDAtoB_XZE-    15 bytes
  19 milliseconds, ADDAtoB_X-       4 bytes
  25 milliseconds, ADDAtoB_X-      15 bytes
 
  30 milliseconds, ADDAtoB_XZZF-   55 bytes
  36 milliseconds, ADDAtoB_XZZE-   55 bytes
  38 milliseconds, ADDAtoB_XZZEE-  55 bytes
  40 milliseconds, ADDAtoB_XZE-    55 bytes
  44 milliseconds, ADDAtoB_X-       3 bytes
 
  55 milliseconds, ADDAtoB_XZZF103 bytes
  56 milliseconds, ADDAtoB_XZZEE- 103 bytes
  56 milliseconds, ADDAtoB_XZZE-  103 bytes
  58 milliseconds, ADDAtoB_XZE-   103 bytes
 
  94 milliseconds, ADDAtoB_XZZF203 bytes
  98 milliseconds, ADDAtoB_X-      55 bytes
100 milliseconds, ADDAtoB_XZZEE- 203 bytes
100 milliseconds, ADDAtoB_XZZE-  203 bytes
100 milliseconds, ADDAtoB_XZE-   203 bytes
169 milliseconds, ADDAtoB_X-     103 bytes

210 milliseconds, ADDAtoB_XZZF503 bytes
213 milliseconds, ADDAtoB_XZZE-  503 bytes
217 milliseconds, ADDAtoB_XZE-   503 bytes
217 milliseconds, ADDAtoB_XZZEE- 503 bytes
305 milliseconds, ADDAtoB_X-     203 bytes

483 milliseconds, ADDAtoB_XZZF- 1027 bytes
492 milliseconds, ADDAtoB_XZZEE-1027 bytes
493 milliseconds, ADDAtoB_XZZE- 1027 bytes
494 milliseconds, ADDAtoB_XZE-  1027 bytes
744 milliseconds, ADDAtoB_X-     503 bytes
1783 milliseconds, ADDAtoB_X-    1027 bytes
********** END III **********

------------------------------------------
;      this is one REFERENCE !
------------------------------------------
***** Time table *****

   87 milliseconds, ADDAtoB_X-       0 bytes
  111 milliseconds, ADDAtoB_XZE-     0 bytes
  111 milliseconds, ADDAtoB_XZZE-    0 bytes
  123 milliseconds, ADDAtoB_XZZEE-   0 bytes
  123 milliseconds, ADDAtoB_XZZF-    0 bytes
 
  215 milliseconds, ADDAtoB_XZE-     2 bytes
  215 milliseconds, ADDAtoB_XZZE-    2 bytes
  215 milliseconds, ADDAtoB_XZZF-    2 bytes
  222 milliseconds, ADDAtoB_X-       2 bytes
  227 milliseconds, ADDAtoB_XZZE-    1 bytes
  227 milliseconds, ADDAtoB_XZZEE-   2 bytes
  228 milliseconds, ADDAtoB_XZZF-    1 bytes
  228 milliseconds, ADDAtoB_XZZEE-   1 bytes
  229 milliseconds, ADDAtoB_XZE-     1 bytes
  233 milliseconds, ADDAtoB_XZE-     3 bytes
  233 milliseconds, ADDAtoB_X-       3 bytes
  234 milliseconds, ADDAtoB_XZZF-    3 bytes
  234 milliseconds, ADDAtoB_XZZE-    3 bytes
  242 milliseconds, ADDAtoB_X-       1 bytes
  246 milliseconds, ADDAtoB_XZZEE-   3 bytes
  288 milliseconds, ADDAtoB_XZE-     4 bytes
  289 milliseconds, ADDAtoB_XZZE-    4 bytes
  289 milliseconds, ADDAtoB_XZZF-    4 bytes
  290 milliseconds, ADDAtoB_XZZEE-   4 bytes
 
  580 milliseconds, ADDAtoB_XZZEE-  15 bytes
  581 milliseconds, ADDAtoB_XZE-    15 bytes
  582 milliseconds, ADDAtoB_XZZE-   15 bytes
  595 milliseconds, ADDAtoB_XZZF-   15 bytes
  713 milliseconds, ADDAtoB_X-       4 bytes
2038 milliseconds, ADDAtoB_X-      15 bytes

3470 milliseconds, ADDAtoB_XZZF-   55 bytes
3705 milliseconds, ADDAtoB_XZZEE-  55 bytes
3934 milliseconds, ADDAtoB_XZZE-   55 bytes
3945 milliseconds, ADDAtoB_XZE-    55 bytes
5890 milliseconds, ADDAtoB_X-      55 bytes

6554 milliseconds, ADDAtoB_XZZF-  103 bytes
6932 milliseconds, ADDAtoB_XZZEE- 103 bytes
7170 milliseconds, ADDAtoB_XZE-   103 bytes
7706 milliseconds, ADDAtoB_XZZE-  103 bytes

10091 milliseconds, ADDAtoB_XZZEE- 203 bytes
10320 milliseconds, ADDAtoB_XZZEE- 503 bytes
10421 milliseconds, ADDAtoB_XZZF-  203 bytes
10490 milliseconds, ADDAtoB_XZE-   203 bytes
10491 milliseconds, ADDAtoB_XZZE-  203 bytes


10644 milliseconds, ADDAtoB_XZZF-  503 bytes
10651 milliseconds, ADDAtoB_X-     103 bytes
10721 milliseconds, ADDAtoB_XZE-   503 bytes
10731 milliseconds, ADDAtoB_XZZE-  503 bytes
17916 milliseconds, ADDAtoB_X-     203 bytes
33803 milliseconds, ADDAtoB_X-     503 bytes


34786 milliseconds, ADDAtoB_XZZE- 1027 bytes
34792 milliseconds, ADDAtoB_XZZF- 1027 bytes
34796 milliseconds, ADDAtoB_XZZEE-1027 bytes
35036 milliseconds, ADDAtoB_XZE-  1027 bytes
66597 milliseconds, ADDAtoB_X-    1027 bytes
********** END III **********

dedndave

psst - FORTRANS is Steve   :biggrin:

i haven't been running these, because we have essentially the same processor
my results will always look like yours

RuiLoureiro

#71
Dave, i did a correction in 2 posts  :t

Thank you Gunther,  :t

XZZF seems to be better here with 137 milliseconds to ADD 1027 bytes
and we got the same 137 to MOV 1027 bytes with XZZC (see my reply #48)!

IS THIS GOOD ? What do you think ?

----------------------------
Results from Gunther
----------------------------
--------------------------------------------------------------
Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz (SSE4)
--------------------------------------------------------------
***** Time table *****

  0 milliseconds, ADDAtoB_XZZF-    0 bytes
  0 milliseconds, ADDAtoB_XZZEE-   0 bytes
  0 milliseconds, ADDAtoB_XZZE-    4 bytes
  0 milliseconds, ADDAtoB_XZZE-    1 bytes
  0 milliseconds, ADDAtoB_XZZE-    0 bytes
  0 milliseconds, ADDAtoB_XZE-     0 bytes
  0 milliseconds, ADDAtoB_X-       1 bytes
  1 milliseconds, ADDAtoB_XZZF-    4 bytes
  1 milliseconds, ADDAtoB_XZZE-    3 bytes
  1 milliseconds, ADDAtoB_XZZE-    2 bytes
  1 milliseconds, ADDAtoB_XZZEE-   4 bytes
  1 milliseconds, ADDAtoB_XZZEE-   2 bytes
  1 milliseconds, ADDAtoB_XZE-     4 bytes
  1 milliseconds, ADDAtoB_XZE-     3 bytes
  1 milliseconds, ADDAtoB_XZE-     2 bytes
  1 milliseconds, ADDAtoB_XZE-     1 bytes
  1 milliseconds, ADDAtoB_XZZEE-   1 bytes
  1 milliseconds, ADDAtoB_X-       2 bytes
  1 milliseconds, ADDAtoB_XZZF-    1 bytes
  1 milliseconds, ADDAtoB_X-       0 bytes
  2 milliseconds, ADDAtoB_XZZF-    2 bytes
  3 milliseconds, ADDAtoB_XZZF-   15 bytes
  3 milliseconds, ADDAtoB_XZE-    15 bytes
  3 milliseconds, ADDAtoB_X-       4 bytes
  3 milliseconds, ADDAtoB_X-       3 bytes
  3 milliseconds, ADDAtoB_XZZF-    3 bytes
  3 milliseconds, ADDAtoB_XZZEE-   3 bytes
  3 milliseconds, ADDAtoB_XZZE-   15 bytes
  4 milliseconds, ADDAtoB_XZZEE15 bytes
  7 milliseconds, ADDAtoB_X-      15 bytes
 
  8 milliseconds, ADDAtoB_XZZF-   55 bytes
10 milliseconds, ADDAtoB_XZZEE-  55 bytes
11 milliseconds, ADDAtoB_XZZE-   55 bytes
11 milliseconds, ADDAtoB_XZE-    55 bytes

14 milliseconds, ADDAtoB_XZZEE- 103 bytes
14 milliseconds, ADDAtoB_XZZF103 bytes
20 milliseconds, ADDAtoB_XZE-   103 bytes
20 milliseconds, ADDAtoB_XZZE-  103 bytes

31 milliseconds, ADDAtoB_XZZF203 bytes
40 milliseconds, ADDAtoB_XZE-   203 bytes
40 milliseconds, ADDAtoB_XZZEE- 203 bytes
40 milliseconds, ADDAtoB_XZZE-  203 bytes
41 milliseconds, ADDAtoB_X-      55 bytes
57 milliseconds, ADDAtoB_X-     103 bytes

70 milliseconds, ADDAtoB_XZZEE- 503 bytes
70 milliseconds, ADDAtoB_XZZF503 bytes
78 milliseconds, ADDAtoB_XZE-   503 bytes
79 milliseconds, ADDAtoB_XZZE-  503 bytes
117 milliseconds, ADDAtoB_X-     203 bytes

137 milliseconds, ADDAtoB_XZZF- 1027 bytes
146 milliseconds, ADDAtoB_XZZE- 1027 bytes
146 milliseconds, ADDAtoB_XZE-  1027 bytes
146 milliseconds, ADDAtoB_XZZEE-1027 bytes
263 milliseconds, ADDAtoB_X-     503 bytes
557 milliseconds, ADDAtoB_X-    1027 bytes
********** END III **********

Gunther

Hi Rui,

Quote from: RuiLoureiro on June 30, 2014, 07:18:43 AM
XZZF seems to be better here with 137 milliseconds to ADD 1027 bytes
and we got the same 137 to MOV 1027 bytes with XZZC !

IS THIS GOOD ? What do you think ?

I think it's not bad.

Gunther
You have to know the facts before you can distort them.

RuiLoureiro

#73
Hi
--------------------------------
Insert a string to another
--------------------------------

    . INSAtoB_X is the reference procedure:
      move and add only BYTES;
    . all other move/add DWORDS+BYTES;
    . INSAtoB_X stringA, stringB, Position    <<<- insert A into B

    . In these examples, we insert 0,1,2,3,4,15,55,103,203,503,1027
      to one that contains 100 bytes.

    Gunther, could you post your results, please ?
    Thank you  :t
   
Here are my results

Quote
INSERTING AT POSITION 7 -string length=100
-----------------------------------------------------
Intel(R) Pentium(R) 4 CPU 3.40GHz (SSE3)
-----------------------------------------------------
***** Time table *****

  3 milliseconds, INSAtoB_XZZF-   0 bytes
  3 milliseconds, INSAtoB_XZZE-   0 bytes
  6 milliseconds, INSAtoB_X-      0 bytes
 
45 milliseconds, INSAtoB_XZZE-   3 bytes
59 milliseconds, INSAtoB_XZZF-   3 bytes
64 milliseconds, INSAtoB_XZZF-   1 bytes
65 milliseconds, INSAtoB_XZZE-   1 bytes

69 milliseconds, INSAtoB_XZZF15 bytes
76 milliseconds, INSAtoB_XZZE- 103 bytes
87 milliseconds, INSAtoB_XZZE-  15 bytes
91 milliseconds, INSAtoB_XZZE-   2 bytes
100 milliseconds, INSAtoB_X-      4 bytes
101 milliseconds, INSAtoB_X-      1 bytes
102 milliseconds, INSAtoB_XZZE-  55 bytes
103 milliseconds, INSAtoB_XZZE-   4 bytes
103 milliseconds, INSAtoB_XZZF-   4 bytes
105 milliseconds, INSAtoB_XZZF- 203 bytes
105 milliseconds, INSAtoB_XZZF-  55 bytes
106 milliseconds, INSAtoB_XZZF-   2 bytes
113 milliseconds, INSAtoB_X-     15 bytes
126 milliseconds, INSAtoB_X-      3 bytes
126 milliseconds, INSAtoB_X-      2 bytes
152 milliseconds, INSAtoB_X-     55 bytes

156 milliseconds, INSAtoB_XZZF- 103 bytes
186 milliseconds, INSAtoB_X-    103 bytes
219 milliseconds, INSAtoB_XZZE- 203 bytes
243 milliseconds, INSAtoB_X-    203 bytes
443 milliseconds, INSAtoB_X-    503 bytes
479 milliseconds, INSAtoB_XZZE- 503 bytes
539 milliseconds, INSAtoB_XZZF- 503 bytes

816 milliseconds, INSAtoB_X-   1027 bytes
830 milliseconds, INSAtoB_XZZE-1027 bytes
999 milliseconds, INSAtoB_XZZF-1027 bytes
********** END III **********
Quote
INSERTING AT POSITION 50 -string length=100
-----------------------------------------------------
Intel(R) Pentium(R) 4 CPU 3.40GHz (SSE3)
-----------------------------------------------------
***** Time table *****

  4 milliseconds, INSAtoB_XZZE-   0 bytes
  7 milliseconds, INSAtoB_X-      0 bytes
  8 milliseconds, INSAtoB_XZZF-   0 bytes
 
29 milliseconds, INSAtoB_XZZE-   3 bytes
34 milliseconds, INSAtoB_XZZE-   1 bytes
38 milliseconds, INSAtoB_XZZF-   1 bytes
43 milliseconds, INSAtoB_XZZE-   2 bytes
46 milliseconds, INSAtoB_XZZF-   3 bytes
46 milliseconds, INSAtoB_XZZF15 bytes
54 milliseconds, INSAtoB_XZZE-   4 bytes
55 milliseconds, INSAtoB_XZZF-   4 bytes
59 milliseconds, INSAtoB_XZZE-  15 bytes

61 milliseconds, INSAtoB_XZZE55 bytes
62 milliseconds, INSAtoB_XZZF-   2 bytes
70 milliseconds, INSAtoB_XZZF55 bytes
78 milliseconds, INSAtoB_X-      2 bytes
83 milliseconds, INSAtoB_X-      4 bytes
84 milliseconds, INSAtoB_X-      1 bytes
84 milliseconds, INSAtoB_X-      3 bytes
110 milliseconds, INSAtoB_X-     55 bytes

112 milliseconds, INSAtoB_XZZE- 103 bytes
122 milliseconds, INSAtoB_X-     15 bytes
131 milliseconds, INSAtoB_XZZF- 103 bytes
132 milliseconds, INSAtoB_X-    103 bytes

139 milliseconds, INSAtoB_XZZE- 203 bytes
148 milliseconds, INSAtoB_XZZF- 203 bytes

190 milliseconds, INSAtoB_XZZF- 503 bytes
201 milliseconds, INSAtoB_X-    203 bytes
442 milliseconds, INSAtoB_X-    503 bytes
459 milliseconds, INSAtoB_XZZE- 503 bytes

776 milliseconds, INSAtoB_XZZF-1027 bytes
784 milliseconds, INSAtoB_XZZE-1027 bytes
795 milliseconds, INSAtoB_X-   1027 bytes
********** END III **********
Quote
INSERTING AT POSITION 93 -string length=100
-----------------------------------------------------
Intel(R) Pentium(R) 4 CPU 3.40GHz (SSE3)
-----------------------------------------------------
***** Time table *****

  3 milliseconds, INSAtoB_XZZE-   0 bytes
  7 milliseconds, INSAtoB_X-      0 bytes
  8 milliseconds, INSAtoB_XZZF-   0 bytes
12 milliseconds, INSAtoB_X-      1 bytes
13 milliseconds, INSAtoB_X-      2 bytes
15 milliseconds, INSAtoB_XZZE-   2 bytes
16 milliseconds, INSAtoB_XZZE-   3 bytes
17 milliseconds, INSAtoB_XZZE-   4 bytes
19 milliseconds, INSAtoB_XZZF-   4 bytes
22 milliseconds, INSAtoB_XZZF-   1 bytes
24 milliseconds, INSAtoB_XZZF-   2 bytes
24 milliseconds, INSAtoB_XZZF-   3 bytes
25 milliseconds, INSAtoB_X-      3 bytes
25 milliseconds, INSAtoB_XZZE-   1 bytes
27 milliseconds, INSAtoB_X-      4 bytes

35 milliseconds, INSAtoB_XZZE15 bytes
37 milliseconds, INSAtoB_XZZF-  55 bytes
40 milliseconds, INSAtoB_XZZF-  15 bytes
45 milliseconds, INSAtoB_X-     15 bytes
60 milliseconds, INSAtoB_XZZE-  55 bytes
67 milliseconds, INSAtoB_X-     55 bytes

72 milliseconds, INSAtoB_XZZF- 103 bytes
101 milliseconds, INSAtoB_X-    103 bytes
119 milliseconds, INSAtoB_XZZE- 103 bytes
146 milliseconds, INSAtoB_XZZF- 203 bytes
155 milliseconds, INSAtoB_X-    203 bytes
156 milliseconds, INSAtoB_XZZE- 503 bytes
163 milliseconds, INSAtoB_XZZE- 203 bytes

315 milliseconds, INSAtoB_XZZF-1027 bytes
398 milliseconds, INSAtoB_X-    503 bytes
417 milliseconds, INSAtoB_XZZF- 503 bytes
782 milliseconds, INSAtoB_XZZE-1027 bytes
876 milliseconds, INSAtoB_X-   1027 bytes
********** END III **********

Gunther

Hi Rui,

Quote from: RuiLoureiro on July 02, 2014, 03:26:08 AM
    Gunther, could you post your results, please ?
    Thank you  :t

No problem. Do you need the results of all 3 attachments? I can do it this evening.

Gunther
You have to know the facts before you can distort them.