Navigation Menu

Skip to content

Instantly share code, notes, and snippets.

@Hamayama
Last active September 30, 2017 03:44
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Hamayama/904643c8ef867e88cf30c7eabb5aaa6f to your computer and use it in GitHub Desktop.
Save Hamayama/904643c8ef867e88cf30c7eabb5aaa6f to your computer and use it in GitHub Desktop.
Gauche の Windows コンソールのコードページ対応の測定
<Gauche の Windows コンソールのコードページ対応の測定>
1. 環境
OS : Windows 8.1 (64bit)
開発環境 : MSYS2/MinGW-w64 (64bit) (gcc version 7.1.0 (Rev2, Built by MSYS2 project))
Gauche : v0.9.6_pre2 (コミット aa189e6 + 変更)
2. 測定
2.1. ロード時間測定
(1)コマンドプロンプト1 (Windows コンソール対応あり)
gosh -pload
Load statistics:
Time(us) File
--------+-------------------------------------------------------------------
15627 C:\Program Files (x86)\Gauche\share\gauche-0.9\0.9.6_pre3\lib/gauche/generator.scm
15627 C:\Program Files (x86)\Gauche\share\gauche-0.9\0.9.6_pre3\lib/gauche/common-macros.scm
15626 C:\Program Files (x86)\Gauche\share\gauche-0.9\0.9.6_pre3\lib/gauche/charconv.scm
15625 C:\Program Files (x86)\Gauche\share\gauche-0.9\0.9.6_pre3\lib/gauche/defvalues.scm
15623 C:\Program Files (x86)\Gauche\share\gauche-0.9\0.9.6_pre3\lib/os/windows/console/codepage.scm
15620 C:\Program Files (x86)\Gauche\share\gauche-0.9\0.9.6_pre3\lib/gauche/procedure.scm
15609 C:\Program Files (x86)\Gauche\share\gauche-0.9\0.9.6_pre3\lib/srfi-0.scm
0 C:\Program Files (x86)\Gauche\share\gauche-0.9\0.9.6_pre3\lib/gauche/interactive.scm
0 C:\Program Files (x86)\Gauche\share\gauche-0.9\0.9.6_pre3\lib/gauche/portutil.scm
0 C:\Program Files (x86)\Gauche\share\gauche-0.9\0.9.6_pre3\lib/srfi-13.scm
0 C:\Program Files (x86)\Gauche\share\gauche-0.9\0.9.6_pre3\lib/gauche/vport.scm
0 C:\Program Files (x86)\Gauche\share\gauche-0.9\0.9.6_pre3\lib/srfi-26.scm
0 C:\Program Files (x86)\Gauche\share\gauche-0.9\0.9.6_pre3\lib/util/match.scm
0 C:\Program Files (x86)\Gauche\share\gauche-0.9\0.9.6_pre3\lib/gauche/partcont.scm
0 C:\Program Files (x86)\Gauche\share\gauche-0.9\0.9.6_pre3\lib/gauche/uvector.scm
0 C:\Program Files (x86)\Gauche\share\gauche-0.9\0.9.6_pre3\lib/data/queue.scm
0 C:\Program Files (x86)\Gauche\share\gauche-0.9\0.9.6_pre3\lib/gauche/sequence.scm
0 C:\Program Files (x86)\Gauche\share\gauche-0.9\0.9.6_pre3\lib/gauche/collection.scm
0 C:\Program Files (x86)\Gauche\share\gauche-0.9\0.9.6_pre3\lib/srfi-1.scm
0 C:\Program Files (x86)\Gauche\share\gauche-0.9\0.9.6_pre3\lib/os/windows.scm
--------+-------------------------------------------------------------------
109357 Total
(2)コマンドプロンプト2 (Windows コンソール対応なし)
set GAUCHE_WINDOWS_CONSOLE_RAW=1
gosh -pload
Load statistics:
Time(us) File
--------+-------------------------------------------------------------------
15639 C:\Program Files (x86)\Gauche\share\gauche-0.9\0.9.6_pre3\lib/gauche/common-macros.scm
15595 C:\Program Files (x86)\Gauche\share\gauche-0.9\0.9.6_pre3\lib/gauche/interactive.scm
0 C:\Program Files (x86)\Gauche\share\gauche-0.9\0.9.6_pre3\lib/srfi-0.scm
0 C:\Program Files (x86)\Gauche\share\gauche-0.9\0.9.6_pre3\lib/gauche/defvalues.scm
--------+-------------------------------------------------------------------
31234 Total
(3)mintty1 (Windows コンソール対応あり)
gosh -pload
Load statistics:
Time(us) File
--------+-------------------------------------------------------------------
15642 C:\Program Files (x86)\Gauche\share\gauche-0.9\0.9.6_pre3\lib/gauche/collection.scm
15626 C:\Program Files (x86)\Gauche\share\gauche-0.9\0.9.6_pre3\lib/gauche/vport.scm
15625 C:\Program Files (x86)\Gauche\share\gauche-0.9\0.9.6_pre3\lib/gauche/interactive.scm
15625 C:\Program Files (x86)\Gauche\share\gauche-0.9\0.9.6_pre3\lib/gauche/portutil.scm
15625 C:\Program Files (x86)\Gauche\share\gauche-0.9\0.9.6_pre3\lib/gauche/procedure.scm
15609 C:\Program Files (x86)\Gauche\share\gauche-0.9\0.9.6_pre3\lib/gauche/uvector.scm
0 C:\Program Files (x86)\Gauche\share\gauche-0.9\0.9.6_pre3\lib/gauche/defvalues.scm
0 C:\Program Files (x86)\Gauche\share\gauche-0.9\0.9.6_pre3\lib/os/windows/console/codepage.scm
0 C:\Program Files (x86)\Gauche\share\gauche-0.9\0.9.6_pre3\lib/gauche/charconv.scm
0 C:\Program Files (x86)\Gauche\share\gauche-0.9\0.9.6_pre3\lib/srfi-13.scm
0 C:\Program Files (x86)\Gauche\share\gauche-0.9\0.9.6_pre3\lib/srfi-26.scm
0 C:\Program Files (x86)\Gauche\share\gauche-0.9\0.9.6_pre3\lib/util/match.scm
0 C:\Program Files (x86)\Gauche\share\gauche-0.9\0.9.6_pre3\lib/gauche/generator.scm
0 C:\Program Files (x86)\Gauche\share\gauche-0.9\0.9.6_pre3\lib/gauche/partcont.scm
0 C:\Program Files (x86)\Gauche\share\gauche-0.9\0.9.6_pre3\lib/data/queue.scm
0 C:\Program Files (x86)\Gauche\share\gauche-0.9\0.9.6_pre3\lib/gauche/sequence.scm
0 C:\Program Files (x86)\Gauche\share\gauche-0.9\0.9.6_pre3\lib/gauche/common-macros.scm
0 C:\Program Files (x86)\Gauche\share\gauche-0.9\0.9.6_pre3\lib/srfi-1.scm
0 C:\Program Files (x86)\Gauche\share\gauche-0.9\0.9.6_pre3\lib/os/windows.scm
0 C:\Program Files (x86)\Gauche\share\gauche-0.9\0.9.6_pre3\lib/srfi-0.scm
--------+-------------------------------------------------------------------
93752 Total
(4)mintty2 (Windows コンソール対応なし)
export GAUCHE_WINDOWS_CONSOLE_RAW=1
gosh -pload
Load statistics:
Time(us) File
--------+-------------------------------------------------------------------
15640 C:\Program Files (x86)\Gauche\share\gauche-0.9\0.9.6_pre3\lib/gauche/interactive.scm
15626 C:\Program Files (x86)\Gauche\share\gauche-0.9\0.9.6_pre3\lib/gauche/common-macros.scm
0 C:\Program Files (x86)\Gauche\share\gauche-0.9\0.9.6_pre3\lib/srfi-0.scm
0 C:\Program Files (x86)\Gauche\share\gauche-0.9\0.9.6_pre3\lib/gauche/defvalues.scm
--------+-------------------------------------------------------------------
31266 Total
2.2. 表示時間測定
(1)コマンドプロンプト1 (Windows コンソール対応あり)
gosh
(time (print (iota 10000))(flush))
; real 1.669
; user 0.703
; sys 0.281
(2)コマンドプロンプト2 (Windows コンソール対応なし)
set GAUCHE_WINDOWS_CONSOLE_RAW=1
gosh
(time (print (iota 10000))(flush))
; real 0.109
; user 0.047
; sys 0.000
(3)mintty1 (Windows コンソール対応あり)
gosh
(time (print (iota 10000))(flush))
; real 0.016
; user 0.016
; sys 0.000
(4)mintty2 (Windows コンソール対応なし)
export GAUCHE_WINDOWS_CONSOLE_RAW=1
gosh
(time (print (iota 10000))(flush))
; real 0.016
; user 0.016
; sys 0.000
3.3. リダイレクト測定
プログラム test_file.scm
(define (main args)
(time
(let loop ([line (read-line)])
(unless (eof-object? line)
(print line)
(loop (read-line))))
(flush))
0)
入力ファイル test_in.txt
100文字x10000行で約1Mバイトのファイル
(1)コマンドプロンプト1 (Windows コンソール対応あり)
del test_out.txt
gosh test_file.scm < test_in.txt > test_out.txt
; real 0.062
; user 0.047
; sys 0.016
(2)コマンドプロンプト2 (Windows コンソール対応なし)
set GAUCHE_WINDOWS_CONSOLE_RAW=1
del test_out.txt
gosh test_file.scm < test_in.txt > test_out.txt
; real 0.063
; user 0.047
; sys 0.015
(3)mintty1 (Windows コンソール対応あり)
rm test_out.txt
gosh test_file.scm < test_in.txt > test_out.txt
; real 0.062
; user 0.015
; sys 0.047
(4)mintty2 (Windows コンソール対応なし)
export GAUCHE_WINDOWS_CONSOLE_RAW=1
rm test_out.txt
gosh test_file.scm < test_in.txt > test_out.txt
; real 0.062
; user 0.016
; sys 0.047
(2017-9-11)(2017-9-12)(2017-9-23)(2017-9-24)(2017-9-30)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment