Hallo
I've done some experimental code in the last few days. That has to do with out of order execution of the modern processors etc. To use this features, one has to make some streamlining "by hand" to break for example dependency chains.
So, my program is written as DOS application with PB 3.5 and runs under XP with SP 2 on an old AMD Sempron with 1.6 GHz. It is blended code, PowerBASIC mixed with Assembler. I used TASM 4.0, because the PB Inline Assembler doesn't support FPU instructions.
The heart of the program are 2 functions; both calculate the sum of a double vector in BASIC or Assembler. The results are the same, of course. I've added 2 FOR-loops for time measurement, in which the functions are called.
And here the trouble started. All worked well with 1330 loop iterations, but at 1350 iterations the program in the DOS box falls back to the command line - in the PB IDE as well as the EXE. It is clear: the resulting times are not very accurate under Windows (multitasking etc.), but it should work. It is also clear that the DOS emulation under Windows was always a tragedy.
I assume, that the error is in XP and not in PB, but I haven't any clue. Does anyone know what happens here? I'll test the program next weekend under other Operating Systems and post the results.
Best wishes
Gunther
I've done some experimental code in the last few days. That has to do with out of order execution of the modern processors etc. To use this features, one has to make some streamlining "by hand" to break for example dependency chains.
So, my program is written as DOS application with PB 3.5 and runs under XP with SP 2 on an old AMD Sempron with 1.6 GHz. It is blended code, PowerBASIC mixed with Assembler. I used TASM 4.0, because the PB Inline Assembler doesn't support FPU instructions.
The heart of the program are 2 functions; both calculate the sum of a double vector in BASIC or Assembler. The results are the same, of course. I've added 2 FOR-loops for time measurement, in which the functions are called.
And here the trouble started. All worked well with 1330 loop iterations, but at 1350 iterations the program in the DOS box falls back to the command line - in the PB IDE as well as the EXE. It is clear: the resulting times are not very accurate under Windows (multitasking etc.), but it should work. It is also clear that the DOS emulation under Windows was always a tragedy.
I assume, that the error is in XP and not in PB, but I haven't any clue. Does anyone know what happens here? I'll test the program next weekend under other Operating Systems and post the results.
Best wishes
Gunther
Comment