HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2021
0925
area39sortnoteのスピードが速い仕組みについて2解決


area39

リンク

2021/9/25(Sat) 08:22:21|NO.93962

データ数650程度のメモリノートパッドをソートしたく、
自作でsortnoteと同じようなモノを、noteget,noteaddなどを使って作ってみたのですが
自作では30秒近くかかりました、
しかし、sortnoteを使うとわずか、2秒程度で処理が終わっていました。
sortnoteは素晴らしいと思い、どうなっているのか調べてみたのですが、ASCIIコードで
ソートしていることまではわかったのですが、なぜそんなに早いのか理解出来ませんでした

やはり、ネイティブで書かれているので、早いとか、HSP純正のnote系の命令は遅いとか
理由があるのでしょうか?

ご存じの方いらっしゃいましたらお教え下さい
よろしくお願いいたします。



この記事に返信する


とあるプログラマ

リンク

2021/9/25(Sat) 11:56:19|NO.93963

openHSPでsortnoteの実装を見ると、std::sort()で実装されていました。

@1279行目
http://dev.onionsoft.net/trac/openhsp/browser/trunk/hsp3/hsp3int.cpp


このstd::sort()はVC++だと、クイックソート・ヒープソート・挿入ソートの複合型で、それにより高速度でのソートを実現しているようです。

https://stackoverflow.com/questions/22885065/what-sorting-algorithm-does-visual-c-use-in-stdsort


なので、HSP上とネイティブでの実行速度の差もあり得ると思いますが、それ以上にstd::sort()が高速であるためにこの差が生まれているのだと思います。



area39

リンク

2021/9/25(Sat) 20:04:05|NO.93968

調べて下さり、ありがとうございました。



ONION software Copyright 1997-2023(c) All rights reserved.