Re: ftbench: last updates

2023-09-30 Thread Ahmet Göksu
hey, i have done the changes you want forcing to push the repo.
i am used vscode whitespace settings, is there any other mistakes to fix?

Best,
Goksu
goksu.in
On Sep 25, 2023 at 7:33 PM +0300, Werner LEMBERG , wrote:
>
> > I hope my effort contribute to you. I wish to see you again.
>
> :-) You are invited to continue your work even after GSoC has ended.
>
> > Here is my last version of readme, [...]
>
> Uh, oh, the formatting in the e-mail is completely broken...
>
> > i will push submit my final submission regarding your feedback.
>
> Ideally, you apply formatting and indenting changes to, say, the
> fourth commit from the top (within your branch) by doing the
> following:
>
> ```
> git rebase -i HEAD # interactive rebase
> 
> 
> git add -p # add diffs one by one
> git commit --amend # rewrite current commit
> git rebase --continue # continue rebase
> git push -f # force-push
> ```
>
> Currently, there is a bunch of whitespace commits on top of the
> cleaned-up commits. However, the idea of a cleaned-up tree is that
> such formatting changes are *not* present – please bear in mind that
> we don't squash the commits into a single one!
>
> I would be glad if you could remove the whitespace commits and include
> the whitespace fixes in the actual commits instead (don't worry about
> today's GSoC deadline, this is cosmetics only).
>
> > (also waiting for *-demos code review, i will push them too)
>
> Thanks.
>
>
> Werner


Re: ftbench: last updates

2023-09-25 Thread Werner LEMBERG

> I hope my effort contribute to you. I wish to see you again.

:-) You are invited to continue your work even after GSoC has ended.

> Here is my last version of readme, [...]

Uh, oh, the formatting in the e-mail is completely broken...

> i will push submit my final submission regarding your feedback.

Ideally, you apply formatting and indenting changes to, say, the
fourth commit from the top (within your branch) by doing the
following:

```
git rebase -i HEAD   # interactive rebase


git add -p   # add diffs one by one
git commit --amend   # rewrite current commit
git rebase --continue# continue rebase
git push -f  # force-push
```

Currently, there is a bunch of whitespace commits on top of the
cleaned-up commits.  However, the idea of a cleaned-up tree is that
such formatting changes are *not* present – please bear in mind that
we don't squash the commits into a single one!

I would be glad if you could remove the whitespace commits and include
the whitespace fixes in the actual commits instead (don't worry about
today's GSoC deadline, this is cosmetics only).

> (also waiting for *-demos code review, i will push them too)

Thanks.


Werner


Re: ftbench: last updates

2023-09-25 Thread Ahmet Göksu
Thanks a lot :)

I hope my effort contribute to you. I wish to see you again.
Here is my last version of readme, i will push submit my final submission 
regarding your feedback. (also waiting for *-demos code review, i will push 
them too)
>
>
> ftbench
> ftbench is a program designed to run FreeType benchmarks between versions.It 
> accepts various options to run specific tests on font rendering operations.
> Each test may involve tasks such as:
> . Initializing the library. Opening the font file. Comparing results with 
> cached versions (if available). Configuring specific charmap indices, load 
> flags, etc.
> Usage is iterations-limited or can be explicitly set to use a maximumnumber 
> of iterations per test.
>
> Command line options
> -C      Compare with cached version (if available).-c N    Use at most N 
> iterations for each test (0 means time-limited).-e E    Set specific charmap 
> index E.-f L    Use hex number L as load flags (see FT_LOAD_XXX').-H NAME  
> Use PS hinting engine NAME (default is adobe').-I VER  Use TT interpreter 
> version VER (default is version 40).-i I-J  Forward or reverse range of glyph 
> indices to use.-l N    Set LCD filter to N (default is 0: none).-m M    Set 
> maximum cache size to M KiByte (default is 1024).-p      Preload font file in 
> memory.-r N    Set render mode to N (default is 0: normal).-s S    Use S ppem 
> as face size (default is 10ppem).-t T    Use at most T seconds per bench 
> (default is 2).-w N    Use N iterations for warming up before each test.
> -b      tests Perform chosen tests (default is all).-v      Show version.
> Usage---
> make baseline    To create a baseline for your benchmarks,use the 
> `make baseline` command.  This will compile the ftbench.c andcreate a set of 
> baseline measurements in the objs/baseline/ directory.
> make benchmark   To run the benchmarks, use the `make benchmark` 
> command.The results will be stored in the objs/benchmark/ directory.It will 
> copy tohtml.py script to objs/ and generate a html file.
> make clean-benchmark    To remove all generated benchmark files andclean the 
> objs directory, use the `make clean-benchmark` command.
>

Best,
Goksu
goksu.in
On 25 Sep 2023 07:20 +0300, Werner LEMBERG , wrote:
>
> Hello Ahmet,
>
>
> sorry for the late reply, I'm travelling right now.
>
> > -Made documentation and comment line (will continue).
>
> Very nice! Some minor nits, in case you have still time today:
>
> * Please ensure that lines in the documentation are not longer than 78
> characters (`src/tools/ftbench/README`). Ideally, `README` comes in
> Markdown format, but this is not important.
>
> * Use two spaces after a full dot in documentation (this simplifies
> the search for the beginning of a sentence with some editors like
> Emacs).
>
> * Use `autopep8 -a -a -a` to format `tohtml.py` and do some manual
> editing to also shorten the remaining overlong lines to
> 78 characters per line if possible and useful.
>
> * There are some indentation errors in `ftbench.c` (functions
> `test_render`, `test_embolden`, etc.).
>
> * Please synchronize `ftbench.c` with the git version in the
> `freetype-devel` repository (which is a trivial change only).
>
> > In this version of the code, i just didnt splitted iterations into
> > chunks, got same results with it.
>
> OK. Too bad that we couldn't find the real cause for the large time
> differences, but hey, this is a GSoC project :-)
>
>
> Werner


Re: ftbench: last updates

2023-09-24 Thread Werner LEMBERG

Hello Ahmet,


sorry for the late reply, I'm travelling right now.

> -Made documentation and comment line (will continue).

Very nice!  Some minor nits, in case you have still time today:

* Please ensure that lines in the documentation are not longer than 78
  characters (`src/tools/ftbench/README`).  Ideally, `README` comes in
  Markdown format, but this is not important.

* Use two spaces after a full dot in documentation (this simplifies
  the search for the beginning of a sentence with some editors like
  Emacs).

* Use `autopep8 -a -a -a` to format `tohtml.py` and do some manual
  editing to also shorten the remaining overlong lines to
  78 characters per line if possible and useful.

* There are some indentation errors in `ftbench.c` (functions
  `test_render`, `test_embolden`, etc.).

* Please synchronize `ftbench.c` with the git version in the
  `freetype-devel` repository (which is a trivial change only).

> In this version of the code, i just didnt splitted iterations into
> chunks, got same results with it.

OK.  Too bad that we couldn't find the real cause for the large time
differences, but hey, this is a GSoC project :-)


  Werner


Re: ftbench: last updates

2023-09-21 Thread Ahmet Göksu
Hi,
I have created a new branch.
Here you can see it: 
https://gitlab.freedesktop.org/freetype/freetype/-/tree/gsoc-2023-ahmet-final

-Made documentation and comment line (will continue).
-trailing whitespaces cleared
-more verbose commit messages
-formatted the code.

In this version of the code, i just didnt splitted iterations into chunks, got 
same results with it.

Best,
Goksu
goksu.in
On 18 Sep 2023 10:34 +0300, Werner LEMBERG , wrote:
>
> Hello Ahmet,
>
>
> > -I have changed the * and the sentence
>
> Thanks. Unfortunately, I was unclear that '*x*' in my e-mail is meant
> as Markdown syntax and not to be taken verbatim. In other words, 'x'
> should be typeset in italics, similar to a mathematical variable.
> Sorry for that, and please fix.
>
> Something different: Please don't use `\r` in messages for newlines.
> Use `\n` instead, which is standard (file `testing.mk`).
>
> > > I already changed the working way of the timing. I only start the
> > > benchmark at beginning and stop at the end.
> >
> > i mean, it times chunks, not single iteration. timer starts at the
> > beginning of the chunk and stop at the end (then divide the results
> > size of a chunk). because of it does not time single iteration, it
> > is already a bulk test.
>
> Ok.
>
> > > BTW, I suggest that you add another sentence, explaining *why*
> > > there are two values at all.
> >
> > actually, i didnt get the reason well but it may differ even with
> > same flags. i need help in this case.
>
> Alexei, please have a look. It seems that only(?) the 'Stroke' test
> is affected...
>
> > the code seems producing more accurate results after splitting the
> > results into chunks. are results seem satisfactory in your machine?
>
> Alas, they aren't. Running your code on my GNU/Linux machine, I get
> percental differences up to 14%.
>
> BTW, I've also just compiled `valgrind` from its git repository (to be
> sure that it exactly fits my 'libc' library version) and run
>
> ```
> valgrind --trace-children=yes make baseline
> valgrind --trace-children=yes make benchmark
> ```
>
> expecting to get identical results, because `valgrind` uses a CPU
> emulator. However, to my great surprise, they are *not* identical,
> and sometimes the values differ even enormously. Has anybody an idea
> why this happens? AFAICS from valgrind's source files, the
> `clock_gettime` function *is* caught.
>
> Note that with valgrind the creation of the webpage fails; I get
>
> ```
> Traceback (most recent call last):
> File "/home/wl/ahmet/tohtml.py", line 310, in 
> main()
> File "/home/wl/ahmet/tohtml.py", line 67, in main
> generate_total_results_table(html_file, BASELINE_DIR, BENCHMARK_DIR)
> File "/home/wl/ahmet/tohtml.py", line 192, in generate_total_results_table
> diff = ((baseline - benchmark) / baseline) * 100
> ZeroDivisionError: float division by zero
> ```
>
> Attached are the two directories from valgrind runs. Comparing this
> with non-valgrind values I think there is a fundamental interaction
> problem with the `bench` program: It seems that `bench` controls the
> number of loops *in addition* to what you specify via the command
> line. Unfortunately, I don't have time right now to check this by
> myself.
>
> Too bad that you didn't try `valgrind` by yourself earlier, as I've
> asked you repeatedly to do ...
>
> > Also, While there are less than 10 days for final evaluation, there
> > are points that are not completed:
> >
> > * meson
> > * cmake
> > * documentation
> >
> > because of our focus a bit changed, didnt worked on them
> > much. Should I complete them all? Is there a priority?
>
> Please forget meson and cmake, this is not important at this stage.
> What I now ask is to create a new branch, with *all* of your changes
> recreated as logical and (relatively small) incremental commits,
> rebased to 'master'. Ideally every commit is compilable. If not
> (which should be an exception, and there should be a good explanation
> for that), please add a remark in the commit message.
>
> * Try to adjust the formatting to be as near to the remaining code of
> FreeType.
>
> * The commit messages should also be in FreeType style, which is much*
> *more verbose than what you currently do.
>
> * Avoid trailing whitespace – whatever editor you use, *please* change
> the settings so that this gets automatically removed. Right now, I
> see zillions of trailing whitespace in file `tohtml.py`.
>
> * Hin-Tak is right: Documentation is of paramount importance so that
> you (or someone else) can continue the work.
>
> Have a look at previous GSoC students' (remote) branches to see how
> such a recreated branch should look like, for example
> `GSoC-2019-nikhil` or `GSoC-2017-ewaldhew`.
>
>
> Werner



Freetype Benchmark Results
Warning: Baseline and Benchmark have the same commit ID!
Info

InfoBaselineBenchmark
Parameters-c 1000 -w 100-c 1000 -w 100
Commit IDe61380fee61380fe
Commit Date2023-09-21 15:34:38 +03002023-09-21 15:34:38 +0300

Re: ftbench: last updates

2023-09-18 Thread Werner LEMBERG

Hello Ahmet,


> -I have changed the * and the sentence

Thanks.  Unfortunately, I was unclear that '*x*' in my e-mail is meant
as Markdown syntax and not to be taken verbatim.  In other words, 'x'
should be typeset in italics, similar to a mathematical variable.
Sorry for that, and please fix.

Something different: Please don't use `\r` in messages for newlines.
Use `\n` instead, which is standard (file `testing.mk`).

>> I already changed the working way of the timing. I only start the
>> benchmark at beginning and stop at the end.
>
> i mean, it times chunks, not single iteration.  timer starts at the
> beginning of the chunk and stop at the end (then divide the results
> size of a chunk). because of it does not time single iteration, it
> is already a bulk test.

Ok.

>> BTW, I suggest that you add another sentence, explaining *why*
>> there are two values at all.
>
> actually, i didnt get the reason well but it may differ even with
> same flags. i need help in this case.

Alexei, please have a look.  It seems that only(?) the 'Stroke' test
is affected...

> the code seems producing more accurate results after splitting the
> results into chunks. are results seem satisfactory in your machine?

Alas, they aren't.  Running your code on my GNU/Linux machine, I get
percental differences up to 14%.

BTW, I've also just compiled `valgrind` from its git repository (to be
sure that it exactly fits my 'libc' library version) and run

```
valgrind --trace-children=yes make baseline
valgrind --trace-children=yes make benchmark
```

expecting to get identical results, because `valgrind` uses a CPU
emulator.  However, to my great surprise, they are *not* identical,
and sometimes the values differ even enormously.  Has anybody an idea
why this happens?  AFAICS from valgrind's source files, the
`clock_gettime` function *is* caught.

Note that with valgrind the creation of the webpage fails; I get

```
Traceback (most recent call last):
  File "/home/wl/ahmet/tohtml.py", line 310, in 
main()
  File "/home/wl/ahmet/tohtml.py", line 67, in main
generate_total_results_table(html_file, BASELINE_DIR, BENCHMARK_DIR)
  File "/home/wl/ahmet/tohtml.py", line 192, in generate_total_results_table
diff = ((baseline - benchmark) / baseline) * 100
ZeroDivisionError: float division by zero
```

Attached are the two directories from valgrind runs.  Comparing this
with non-valgrind values I think there is a fundamental interaction
problem with the `bench` program: It seems that `bench` controls the
number of loops *in addition* to what you specify via the command
line.  Unfortunately, I don't have time right now to check this by
myself.

Too bad that you didn't try `valgrind` by yourself earlier, as I've
asked you repeatedly to do ...

> Also, While there are less than 10 days for final evaluation, there
> are points that are not completed:
>
> * meson
> * cmake
> * documentation
>
> because of our focus a bit changed, didnt worked on them
> much. Should I complete them all? Is there a priority?

Please forget meson and cmake, this is not important at this stage.
What I now ask is to create a new branch, with *all* of your changes
recreated as logical and (relatively small) incremental commits,
rebased to 'master'.  Ideally every commit is compilable.  If not
(which should be an exception, and there should be a good explanation
for that), please add a remark in the commit message.

* Try to adjust the formatting to be as near to the remaining code of
  FreeType.

* The commit messages should also be in FreeType style, which is much*
  *more verbose than what you currently do.

* Avoid trailing whitespace – whatever editor you use, *please* change
  the settings so that this gets automatically removed.  Right now, I
  see zillions of trailing whitespace in file `tohtml.py`.

* Hin-Tak is right: Documentation is of paramount importance so that
  you (or someone else) can continue the work.

Have a look at previous GSoC students' (remote) branches to see how
such a recreated branch should look like, for example
`GSoC-2019-nikhil` or `GSoC-2017-ewaldhew`.


Werner


valgrind.tar.gz
Description: Binary data


Re: ftbench: last updates

2023-09-17 Thread Ahmet Göksu
Thanks Hin-Tak,
I will create a README and enhance the comments inside of the codes and 
Makefile being guided by docguide and ftrandom (another function inside of the 
src/tools) documentation.

Best,
Goksu
goksu.in
On 17 Sep 2023 22:23 +0300, Hin-Tak Leung , wrote:
> Hi Ahmet. I'll leave Werner to say something definitive, but in my opinion, 
> given the project will be put aside and/or merge with some incomplete area 
> soon, for some possibly long period before you or somebody else revisit the 
> tasks/goals, it is particularly important to document things clearly. Not 
> just in terms of formal documentations in the various readme's, but also 
> adding "TODO", "Known limitations" in the code. Like "notes and reminders to 
> future self" if you need to come back to it and continue after 5 years :-).
>
> As for meson and cmake - if you do add/change something at this stage, be 
> sure to write a bit more about what state it is in, in the commit message. It 
> will be quite annoying for somebody else, or you yourself for that matter, to 
> look at some large chunk of code in a year or two, and think: "what state 
> this was in, did this work at all? Has this gotten broken recently,  or never 
> did work?". I think one example might be qt6 support for ftinspect - there 
> are some work/code going towards it, but it would be nice to see a comment 
> where it matters - around where one might switch from qt5 to qt6 - that it 
> doesn't quite work yet. There are always going to be 
> incomplete/work-in-progress areas, so the general direction would be write 
> down things clearly so you or someone else can revisit later and continue 
> with as much help and information as you can give now.
>
>
> On Sunday, 17 September 2023 at 12:35:08 BST, Ahmet Göksu  
> wrote:
>
>
> Thanks Hin-Tak,
> I am developing on a Mac.
>
> Also,
> While there are less than 10 days for final evaluation, there are points that 
> are not completed:
> *meson
> *cmake
> *documentation
> because of our focus a bit changed, didnt worked on them much. Should I 
> complete them all? Is there a priority?
>
> Best,
> Goksu
> goksu.in
> On 17 Sep 2023 02:31 +0300, Hin-Tak Leung , 
> wrote:
> > I just remember something - the windows' implementation of ANSI / POSIX 
> > timing routines are especially poor - e.g.
> > https://stackoverflow.com/questions/18346879/timer-accuracy-c-clock-vs-winapis-qpc-or-timegettime
> > So unfortunately if you are trying to measure time on Windows accurately, 
> > you might have to do something differently from ANSI C . If you search for 
> > "poor timer on Windows" or just "highres timer os" on most search engines, 
> > there are various discussions about it.
> >
> >
> > On Saturday, 16 September 2023 at 17:21:49 BST, Ahmet Göksu 
> >  wrote:
> >
> >
> > Hello,
> > -I have changed the * and the sentence
> > -changed the links to relative
> > > I already changed the working way of the timing. I only start the
> > > benchmark at beginning and stop at the end.
> > i mean, it times chunks, not single iteration.timer starts at the beginning 
> > of the chunk and stop at the end (then divide the results size of a chunk). 
> > because of it does not time single iteration, it is already a bulk test.
> > > BTW, I suggest that you add another sentence, explaining *why* there
> > > are two values at all.
> > actually, i didnt get the reason well but it may differ even with same 
> > flags. i need help in this case.
> >
> > as i said before, i run the benchmark in mac. it uses this if clause.
> > return 1E6 * (double)clock() / (double)CLOCKS_PER_SEC;
> >
> > the code seems producing more accurate results after splitting the results 
> > into chunks. are results seem satisfactory in your machine?
> >
> > Best,
> > Goksu
> > goksu.in
> > On 12 Sep 2023 18:17 +0300, Werner LEMBERG , wrote:
> >
> > >
> > > If a value in the 'Iterations' column is given as '*x* | *y*',
> > > values *x* and *y* give the number of iterations in the baseline and
> > > the benchmark test, respectively.


Re: ftbench: last updates

2023-09-17 Thread Hin-Tak Leung
 Hi Ahmet. I'll leave Werner to say something definitive, but in my opinion, 
given the project will be put aside and/or merge with some incomplete area 
soon, for some possibly long period before you or somebody else revisit the 
tasks/goals, it is particularly important to document things clearly. Not just 
in terms of formal documentations in the various readme's, but also adding 
"TODO", "Known limitations" in the code. Like "notes and reminders to future 
self" if you need to come back to it and continue after 5 years :-).
As for meson and cmake - if you do add/change something at this stage, be sure 
to write a bit more about what state it is in, in the commit message. It will 
be quite annoying for somebody else, or you yourself for that matter, to look 
at some large chunk of code in a year or two, and think: "what state this was 
in, did this work at all? Has this gotten broken recently,  or never did 
work?". I think one example might be qt6 support for ftinspect - there are some 
work/code going towards it, but it would be nice to see a comment where it 
matters - around where one might switch from qt5 to qt6 - that it doesn't quite 
work yet. There are always going to be incomplete/work-in-progress areas, so 
the general direction would be write down things clearly so you or someone else 
can revisit later and continue with as much help and information as you can 
give now.

On Sunday, 17 September 2023 at 12:35:08 BST, Ahmet Göksu  
wrote:  
 
 Thanks Hin-Tak, 
I am developing on a Mac. 

Also,
While there are less than 10 days for final evaluation, there are points that 
are not completed:
*meson
*cmake
*documentation
because of our focus a bit changed, didnt worked on them much. Should I 
complete them all? Is there a priority?
Best,Goksugoksu.inOn 17 Sep 2023 02:31 +0300, Hin-Tak Leung 
, wrote:

I just remember something - the windows' implementation of ANSI / POSIX timing 
routines are especially poor - 
e.g.https://stackoverflow.com/questions/18346879/timer-accuracy-c-clock-vs-winapis-qpc-or-timegettime
So unfortunately if you are trying to measure time on Windows accurately, you 
might have to do something differently from ANSI C . If you search for "poor 
timer on Windows" or just "highres timer os" on most search engines, there are 
various discussions about it.

On Saturday, 16 September 2023 at 17:21:49 BST, Ahmet Göksu  
wrote:

Hello,
-I have changed the * and the sentence
-changed the links to relative

I already changed the working way of the timing. I only start the
benchmark at beginning and stop at the end.
i mean, it times chunks, not single iteration.timer starts at the beginning of 
the chunk and stop at the end (then divide the results size of a chunk). 
because of it does not time single iteration, it is already a bulk test.
BTW, I suggest that you add another sentence, explaining *why* there
are two values at all.
actually, i didnt get the reason well but it may differ even with same flags. i 
need help in this case.

as i said before, i run the benchmark in mac. it uses this if clause.
return 1E6 * (double)clock() / (double)CLOCKS_PER_SEC;

the code seems producing more accurate results after splitting the results into 
chunks. are results seem satisfactory in your machine?
Best,Goksugoksu.inOn 12 Sep 2023 18:17 +0300, Werner LEMBERG , 
wrote:


If a value in the 'Iterations' column is given as '*x* | *y*',
values *x* and *y* give the number of iterations in the baseline and
the benchmark test, respectively.


  

Re: ftbench: last updates

2023-09-17 Thread Ahmet Göksu
Thanks Hin-Tak,
I am developing on a Mac.

Also,
While there are less than 10 days for final evaluation, there are points that 
are not completed:
*meson
*cmake
*documentation
because of our focus a bit changed, didnt worked on them much. Should I 
complete them all? Is there a priority?

Best,
Goksu
goksu.in
On 17 Sep 2023 02:31 +0300, Hin-Tak Leung , wrote:
> I just remember something - the windows' implementation of ANSI / POSIX 
> timing routines are especially poor - e.g.
> https://stackoverflow.com/questions/18346879/timer-accuracy-c-clock-vs-winapis-qpc-or-timegettime
> So unfortunately if you are trying to measure time on Windows accurately, you 
> might have to do something differently from ANSI C . If you search for "poor 
> timer on Windows" or just "highres timer os" on most search engines, there 
> are various discussions about it.
>
>
> On Saturday, 16 September 2023 at 17:21:49 BST, Ahmet Göksu  
> wrote:
>
>
> Hello,
> -I have changed the * and the sentence
> -changed the links to relative
> > I already changed the working way of the timing. I only start the
> > benchmark at beginning and stop at the end.
> i mean, it times chunks, not single iteration.timer starts at the beginning 
> of the chunk and stop at the end (then divide the results size of a chunk). 
> because of it does not time single iteration, it is already a bulk test.
> > BTW, I suggest that you add another sentence, explaining *why* there
> > are two values at all.
> actually, i didnt get the reason well but it may differ even with same flags. 
> i need help in this case.
>
> as i said before, i run the benchmark in mac. it uses this if clause.
> return 1E6 * (double)clock() / (double)CLOCKS_PER_SEC;
>
> the code seems producing more accurate results after splitting the results 
> into chunks. are results seem satisfactory in your machine?
>
> Best,
> Goksu
> goksu.in
> On 12 Sep 2023 18:17 +0300, Werner LEMBERG , wrote:
>
> >
> > If a value in the 'Iterations' column is given as '*x* | *y*',
> > values *x* and *y* give the number of iterations in the baseline and
> > the benchmark test, respectively.


Re: ftbench: last updates

2023-09-16 Thread Hin-Tak Leung
 I just remember something - the windows' implementation of ANSI / POSIX timing 
routines are especially poor - 
e.g.https://stackoverflow.com/questions/18346879/timer-accuracy-c-clock-vs-winapis-qpc-or-timegettime
So unfortunately if you are trying to measure time on Windows accurately, you 
might have to do something differently from ANSI C . If you search for "poor 
timer on Windows" or just "highres timer os" on most search engines, there are 
various discussions about it.

On Saturday, 16 September 2023 at 17:21:49 BST, Ahmet Göksu 
 wrote:  
 
 Hello,
-I have changed the * and the sentence
-changed the links to relative

I already changed the working way of the timing. I only start the
benchmark at beginning and stop at the end.
i mean, it times chunks, not single iteration.timer starts at the beginning of 
the chunk and stop at the end (then divide the results size of a chunk). 
because of it does not time single iteration, it is already a bulk test.
BTW, I suggest that you add another sentence, explaining *why* there
are two values at all.
actually, i didnt get the reason well but it may differ even with same flags. i 
need help in this case.

as i said before, i run the benchmark in mac. it uses this if clause.
return 1E6 * (double)clock() / (double)CLOCKS_PER_SEC;

the code seems producing more accurate results after splitting the results into 
chunks. are results seem satisfactory in your machine?
Best,Goksugoksu.inOn 12 Sep 2023 18:17 +0300, Werner LEMBERG , 
wrote:


If a value in the 'Iterations' column is given as '*x* | *y*',
values *x* and *y* give the number of iterations in the baseline and
the benchmark test, respectively.

  

Re: ftbench: last updates

2023-09-16 Thread Ahmet Göksu
Hello,
-I have changed the * and the sentence
-changed the links to relative
> I already changed the working way of the timing. I only start the
> benchmark at beginning and stop at the end.
i mean, it times chunks, not single iteration.timer starts at the beginning of 
the chunk and stop at the end (then divide the results size of a chunk). 
because of it does not time single iteration, it is already a bulk test.
> BTW, I suggest that you add another sentence, explaining *why* there
> are two values at all.
actually, i didnt get the reason well but it may differ even with same flags. i 
need help in this case.

as i said before, i run the benchmark in mac. it uses this if clause.
return 1E6 * (double)clock() / (double)CLOCKS_PER_SEC;

the code seems producing more accurate results after splitting the results into 
chunks. are results seem satisfactory in your machine?

Best,
Goksu
goksu.in
On 12 Sep 2023 18:17 +0300, Werner LEMBERG , wrote:
>
> If a value in the 'Iterations' column is given as '*x* | *y*',
> values *x* and *y* give the number of iterations in the baseline and
> the benchmark test, respectively.


Re: ftbench: last updates

2023-09-12 Thread Werner LEMBERG

>> With 'bulk test' I mean that you don't time single iterations but
>> do timings for 10 iterations in a group, say, thus avoiding
>> issues with the granularity of the OS timing functions.
>
> I already changed the working way of the timing.  I only start the
> benchmark at beginning and stop at the end.

Sorry, but I don't understand your last sentence, please elaborate.

>> I wouldn't use '**' – this looks like a footnote, and people start
>> searching where it belongs to. Instead, please use a simple
>> itemization.

Well, in the latest incarnation of the HTML page there is now a single
line with a '*'.  An enumeration needs at least two items, otherwise
it again looks like a footnote.  In other words, the second sentence
need to start with '*', too.

>> * The sentence about '(X | Y') is cryptic.  [...]
>
> done!

Thanks, but the current text

  If two values are given in the 'Iterations' column, those are belong
  to baseline and benchmark in order.

is not correct English.  Maybe

  If a value in the 'Iterations' column is given as '*x* | *y*',
  values *x* and *y* give the number of iterations in the baseline and
  the benchmark test, respectively.

BTW, I suggest that you add another sentence, explaining *why* there
are two values at all.

>> The links for `Baseline` and `Benchmark` to the `.txt` files are
>> absolute and thus not portable.  They must be relative.
>
> I didnt get this clear.  Since objs dir and the source dir
> different, I needed to give abs path.

Why?  Simply give one directory relative to the other!  Assuming that
you have

  baseline_dir = /foo/bar/baseline/
  benchmark_dir = /foo/bar/benchmark/

and `benchmark.html` gets built in `benchmark_dir`, the two links to
file `Roboto_subset.txt` would be

  
  

What am I missing?  Maybe

  
https://stackoverflow.com/questions/29055511/how-to-find-relative-path-given-two-absolute-paths

helps.  The benchmark should abort if it is not possible to construct
a relative path.


Werner