Last Update 2026/09/09
低スペック寄りのPCでローカルLLMを動作させた際の記録です。
LLM以外の仮想マシンなどが起動され、多少負荷がかかった状態で実行しています。
ベンチマークなどでLLMの性能を評価する内容ではありません。
LLM以外の仮想マシンなどが起動され、多少負荷がかかった状態で実行しています。
ベンチマークなどでLLMの性能を評価する内容ではありません。
検証用PC
|
OS |
Debian GNU/Linux 12 (bookworm) |
|
CPU |
Intel(R) Core(TM) i5-14400F |
|
GPU |
GeForce RTX 3060 12GB |
|
メモリ |
DDR4 PC4-25600 32GB × 4 |
|
SSD |
crucial P310 CT1000P310SSD8-JP |
構築環境 : Docker + Ollama (特別な設定などは無い状態)
検証用プロンプト
```
### 依頼内容
- コード生成
### 指示
- C言語
- コード以外の出力は不要
- 中括弧スタイルはオールマン
- テストコードも生成
- テストコードは別ファイル
- 実行用ソースファイル名 : sample_code.c
- テスト用ソースファイル名 : sample_test.c
- 標準ヘッダ以外は使用しない
- 戻り値はEXIT_SUCCESSを使用
- 関数はmain()の前で定義
### コード仕様(sample_code.c)
- コマンドラインから整数2つを取得
- [引数1]から[引数2]までをインクリメントして空白区切りで標準出力に出力
- 出力する文字列はmain()ではなく関数で生成
### コード仕様(sample_test.c)
- unity.hを使用しない
```
モデル詳細
Model
architecture qwen4exp
parameters 176.9B
context length 262144
embedding length 2560
quantization Q4_K_M
requires 0.33.3
Capabilities
completion
vision
tools
thinking
Projector
architecture clip
parameters 448.93M
embedding length 1152
dimensions 2560
Parameters
top_p 0.95
min_p 0
presence_penalty 0
repeat_penalty 1
temperature 1
top_k 20
Qwen3.8-Flash-Next (GPU無) [実測結果一覧へ]
(1) temperature=---; top_p=---; top_k=--
2026-09-07
total duration: 7m58.204275197s
load duration: 1m24.807530895s
prompt eval count: 195 token(s)
prompt eval duration: 7.198471s
prompt eval rate: 27.09 tokens/s
eval count: 2402 token(s)
eval duration: 6m26.089563s
eval rate: 6.22 tokens/s
(GPU無)
コード生成結果の概要
・C言語による生成
・コード以外の出力無し
・コードの記述スタイルをオールマンで生成
・戻り値は stdlib.h の EXIT_*** を使用
・文字列生成関数
文字列長に応じたメモリの確保(エラー処理有)
インクリメント+空白区切りで文字列用メモリに書き込み
文字列用メモリへのポインタを返す
・main()
引数個数のチェック(エラー処理有)
文字列生成関数の呼び出し(エラー処理有)
生成文字列の標準出力への出力
文字列用メモリの解放
テスト時にmain()除外のマクロを配置
・テストコードを別途生成
テスト対象関数の宣言
main()を伴うテストコード
文字列生成関数を6種類の引数の組み合わせでテスト実行
(1) 整数1 < 整数2
(2) 整数1 < 整数2 ただし、整数1が負数
(3) 整数1 == 整数2
(4) 整数1 < 整数2 ただし、整数1、整数2が共に負数
(5) 整数1 < 整数2 ただし、整数1が0
(6) 整数1 < 整数2 ただし、整数1、整数2が共に3桁以上
(注) LLMの生成結果は毎回一定ではないため、結果によっては上記内容通りではないことが考えられます。
生成コードの実行結果
sample_code.c : 検証用プロンプトにて生成されたコードsample_test.c : 生成されたテストコード
$ gcc -Wall -o sample_code sample_code.c
$ gcc -D SAMPLE_TEST -Wall -o sample_test sample_code.c sample_test.c
$ ./sample_code 1 5
1 2 3 4 5
$ ./sample_code -3 3
-3 -2 -1 0 1 2 3
$ ./sample_code 1 1
1
$ ./sample_code 5 1
Memory allocation failed
$ ./sample_test
Running tests...
[PASS] test_basic_range
[PASS] test_negative_range
[PASS] test_single_value
[PASS] test_negative_to_negative
[PASS] test_zero_to_large
[PASS] test_large_numbers
All tests passed.
(2) temperature=---; top_p=---; top_k=--
2026-09-07
total duration: 4m52.704850615s
load duration: 2.488897ms
prompt eval count: 195 token(s)
prompt eval cached: 191 token(s)
prompt eval duration: 339.971ms
prompt eval rate: 11.77 tokens/s
eval count: 1865 token(s)
eval duration: 4m52.228607s
eval rate: 6.38 tokens/s
(GPU無)
コード生成結果の概要
・C言語による生成
・コード以外の出力無し
・コードの記述スタイルをオールマンで生成
・戻り値は stdlib.h の EXIT_*** を使用
・文字列生成関数
メモリの確保はmain()側
文字列用配列の初期化
インクリメント+空白区切りで文字列用メモリに書き込み
・main()
引数個数のチェック(エラー処理有)
文字列用メモリはchar配列4096バイト固定
文字列生成関数の呼び出し
生成文字列の標準出力への出力
・テストコードを別途生成
テスト対象関数の宣言
main()を伴うテストコード
文字列生成関数を6種類の引数の組み合わせでテスト実行
(1) 整数1 < 整数2
(2) 整数1 == 整数2
(3) 整数1 < 整数2 ただし、整数1が負数
(4) 整数1 > 整数2
(5) 整数1 == 整数2 ただし、整数1、整数2が共に0
(6) 整数1 < 整数2 ただし、整数1、整数2が共に2桁
(注) LLMの生成結果は毎回一定ではないため、結果によっては上記内容通りではないことが考えられます。
生成コードの実行結果
sample_code.c : 検証用プロンプトにて生成されたコードsample_test.c : 生成されたテストコード
$ gcc -Wall -o sample_code sample_code.c
$ gcc -Wall -o sample_test sample_code.c sample_test.c
/bin/ld: /tmp/ccglmdHE.o: in function `main':
sample_test.c:(.text+0x38d): multiple definition of `main'; /tmp/ccQBScKf.o:sample_code.c:(.text+0xf7): first defined here
collect2: error: ld returned 1 exit status
$ vi sample_code.c ← main()関数重複エラー解消のため条件付きコンパイル用の#ifndefマクロを追加
$ gcc -D TEST_MAIN -Wall -o sample_test sample_code.c sample_test.c
$ ./sample_code 1 5
1 2 3 4 5
$ ./sample_code -3 3
-3 -2 -1 0 1 2 3
$ ./sample_code 1 1
1
$ ./sample_code 5 1
$ ./sample_test
=== Tests Start ===
[PASS] sample_test.c:31
[PASS] sample_test.c:38
[PASS] sample_test.c:45
[PASS] sample_test.c:52
[PASS] sample_test.c:59
[PASS] sample_test.c:66
=== Tests End: 6/6 passed ===
(3) temperature=0.70; top_p=0.7; top_k=--
2026-09-07
total duration: 5m50.087179154s
load duration: 1.72211ms
prompt eval count: 195 token(s)
prompt eval cached: 191 token(s)
prompt eval duration: 290.348ms
prompt eval rate: 13.78 tokens/s
eval count: 2223 token(s)
eval duration: 5m49.645223s
eval rate: 6.36 tokens/s
(GPU無)
コード生成結果の概要
・C言語による生成
・コード以外の出力無し
・コードの記述スタイルをオールマンで生成
・戻り値は stdlib.h の EXIT_*** を使用
・文字列生成関数
メモリの確保はmain()側
文字列用配列の初期化
インクリメント+空白区切りで文字列用メモリに書き込み
・main()
引数個数のチェック(エラー処理有)
文字列用メモリはchar配列4096バイト固定
引数値のチェック(エラー判定有)
文字列生成関数の呼び出し(エラー処理有)
生成文字列の標準出力への出力
・テストコードを別途生成
テスト対象関数の宣言
main()を伴うテストコード
文字列生成関数を8種類の引数の組み合わせでテスト実行
(1) 整数1 < 整数2
(2) 整数1 == 整数2
(3) 整数1 < 整数2 ただし、整数1が負数
(4) 整数1 == 整数2 ただし、整数1、整数2が共に0
(5) 整数1 < 整数2 ただし、整数1、整数2が共に2桁
(6) メモリへのポインタがNULL
(7) メモリサイズが0
(8) メモリサイズが必要量より少ない
(注) LLMの生成結果は毎回一定ではないため、結果によっては上記内容通りではないことが考えられます。
生成コードの実行結果
sample_code.c : 検証用プロンプトにて生成されたコードsample_test.c : 生成されたテストコード
$ gcc -Wall -o sample_code sample_code.c
$ gcc -Wall -o sample_test sample_code.c sample_test.c
/bin/ld: /tmp/cc4sRiQ7.o: in function `main':
sample_test.c:(.text+0x78c): multiple definition of `main'; /tmp/ccmIgMCw.o:sample_code.c:(.text+0xea): first defined here
collect2: error: ld returned 1 exit status
$ vi sample_code.c ← main()関数重複エラー解消のため条件付きコンパイル用の#ifndefマクロを追加
$ gcc -D TEST_MAIN -Wall -o sample_test sample_code.c sample_test.c
$ ./sample_code 1 5
1 2 3 4 5
$ ./sample_code -3 3
-3 -2 -1 0 1 2 3
$ ./sample_code 1 1
1
$ ./sample_code 5 1
Error: start(5) must be <= end(1)
$ ./sample_test
=== Running tests ===
[PASS] basic range 1..5
[PASS] single value 7..7
[PASS] negative range -3..3
[PASS] zero range 0..0
[PASS] range 10..15
[PASS] NULL buffer returns NULL
[PASS] zero buf_size returns NULL
[FAIL] truncation with small buffer
expected: "1"
actual: "1 2" ← テスト用のメモリサイズと期待値が合致しない
=== Results: 7/8 passed ===
$ vi sample_test.c ← テスト用のメモリサイズを修正
$ gcc -D TEST_MAIN -Wall -o sample_test sample_code.c sample_test.c
$ ./sample_test
=== Running tests ===
[PASS] basic range 1..5
[PASS] single value 7..7
[PASS] negative range -3..3
[PASS] zero range 0..0
[PASS] range 10..15
[PASS] NULL buffer returns NULL
[PASS] zero buf_size returns NULL
[PASS] truncation with small buffer
=== Results: 8/8 passed ===
(4) temperature=0.50; top_p=0.7; top_k=--
2026-09-07
total duration: 4m50.017234581s
load duration: 1.768352ms
prompt eval count: 195 token(s)
prompt eval cached: 191 token(s)
prompt eval duration: 308.352ms
prompt eval rate: 12.97 tokens/s
eval count: 1857 token(s)
eval duration: 4m49.568841s
eval rate: 6.41 tokens/s
(GPU無)
コード生成結果の概要
・C言語による生成
・コード以外の出力無し
・コードの記述スタイルをオールマンで生成
・戻り値は stdlib.h の EXIT_*** を使用
・文字列生成関数
メモリの確保はmain()側
文字列用配列の初期化
インクリメント+空白区切りで文字列用メモリに書き込み
・main()
引数個数のチェック(エラー処理有)
文字列用メモリはchar配列4096バイト固定
文字列生成関数の呼び出し
生成文字列の標準出力への出力
・テストコードを別途生成
テスト対象関数の宣言
main()を伴うテストコード
文字列生成関数を7種類の引数の組み合わせでテスト実行
(1) 整数1 < 整数2
(2) 整数1 == 整数2
(3) 整数1 < 整数2 ただし、整数1が負数
(4) 整数1 > 整数2
(5) 整数1 < 整数2 ただし、整数1、整数2の差が大きい
(6) 整数1 == 整数2 ただし、整数1、整数2が共に0
(7) メモリサイズが必要量より少ない
(注) LLMの生成結果は毎回一定ではないため、結果によっては上記内容通りではないことが考えられます。
生成コードの実行結果
sample_code.c : 検証用プロンプトにて生成されたコードsample_test.c : 生成されたテストコード
$ gcc -Wall -o sample_code sample_code.c
$ gcc -Wall -o sample_test sample_code.c sample_test.c
/bin/ld: /tmp/ccBGFdJZ.o: in function `main':
sample_test.c:(.text+0x7c0): multiple definition of `main'; /tmp/cceU7oZQ.o:sample_code.c:(.text+0xbb): first defined here
collect2: error: ld returned 1 exit status
$ vi sample_code.c ← main()関数重複エラー解消のため条件付きコンパイル用の#ifndefマクロを追加
$ gcc -D TEST_MAIN -Wall -o sample_test sample_code.c sample_test.c
$ ./sample_code 1 5
1 2 3 4 5
$ ./sample_code -3 3
-3 -2 -1 0 1 2 3
$ ./sample_code 1 1
1
$ ./sample_code 5 1
$ ./sample_test
=== Unit Tests ===
test_basic_range:
[PASS] range 1 to 5
test_single_value:
[PASS] single value 3 to 3
test_negative_range:
[PASS] range -2 to 2
test_start_greater_than_end:
[PASS] start > end produces empty string
test_large_range:
[PASS] range 0 to 9
test_zero_to_zero:
[PASS] range 0 to 0
test_buffer_overflow:
[PASS] buffer not overflowed
=== Results: 7 tests, 7 passed, 0 failed ===
(5) temperature=0.30; top_p=0.7; top_k=--
2026-09-07
total duration: 5m30.72589442s
load duration: 2.091031ms
prompt eval count: 195 token(s)
prompt eval cached: 191 token(s)
prompt eval duration: 295.27ms
prompt eval rate: 13.55 tokens/s
eval count: 2106 token(s)
eval duration: 5m30.27756s
eval rate: 6.38 tokens/s
(GPU無)
コード生成結果の概要
・C言語による生成
・コード以外の出力無し
・コードの記述スタイルをオールマンで生成
・戻り値は stdlib.h の EXIT_*** を使用
・文字列生成関数
引数値のチェック(エラー判定有)
文字列長に応じたメモリの確保(エラー処理有)
インクリメント+空白区切りで文字列用メモリに書き込み
文字列用メモリへのポインタを返す
・main()
引数個数のチェック(エラー処理有)
文字列生成関数の呼び出し(エラー処理有)
生成文字列の標準出力への出力
文字列用メモリの解放
・テストコードを別途生成
実行用コードと同一の文字列生成関数定義を記述
main()を伴うテストコード
文字列生成関数を6種類の引数の組み合わせでテスト実行
(1) 整数1 == 整数2
(2) 整数1 < 整数2
(3) 整数1 < 整数2 ただし、整数1が負数
(4) 整数1 > 整数2
(5) 整数1 == 整数2 ただし、整数1、整数2が共に0
(6) 整数1 < 整数2 ただし、整数1、整数2の差が大きい
(注) LLMの生成結果は毎回一定ではないため、結果によっては上記内容通りではないことが考えられます。
生成コードの実行結果
sample_code.c : 検証用プロンプトにて生成されたコードsample_test.c : 生成されたテストコード
$ gcc -Wall -o sample_code sample_code.c
$ gcc -Wall -o sample_test sample_test.c
$ ./sample_code 1 5
1 2 3 4 5
$ ./sample_code -3 3
-3 -2 -1 0 1 2 3
$ ./sample_code 1 1
1
$ ./sample_code 5 1
Error: invalid range or allocation failure
$ ./sample_test
PASS: test_single_number
PASS: test_positive_range
PASS: test_negative_to_positive
PASS: test_start_greater_than_end
PASS: test_zero_range
PASS: test_large_range
All tests passed.
(6) temperature=0.15; top_p=---; top_k=--
2026-09-07
total duration: 8m41.690362198s
load duration: 1m30.000128744s
prompt eval count: 195 token(s)
prompt eval duration: 6.918975s
prompt eval rate: 28.18 tokens/s
eval count: 2664 token(s)
eval duration: 7m4.643492s
eval rate: 6.27 tokens/s
(GPU無)
コード生成結果の概要
・C言語による生成
・コード以外の出力無し
・コードの記述スタイルをオールマンで生成
・戻り値は stdlib.h の EXIT_*** を使用
・文字列生成関数
メモリの確保はmain()側
文字列用配列の初期化無し
インクリメント+空白区切りで文字列用メモリに書き込み
・main()
引数個数のチェック(エラー処理有)
文字列用メモリはchar配列4096バイト固定
文字列生成関数の呼び出し
生成文字列の標準出力への出力
テスト時にmain()除外のマクロを配置
・テストコードを別途生成
sample_code.cをインクルード
main()を伴うテストコード
文字列生成関数を5種類の引数の組み合わせでテスト実行
(1) 整数1 < 整数2
(2) 整数1 == 整数2
(3) 整数1 < 整数2 ただし、整数1が負数
(4) 整数1 > 整数2
(5) 整数1 < 整数2 ただし、整数1、整数2の差が大きい
(注) LLMの生成結果は毎回一定ではないため、結果によっては上記内容通りではないことが考えられます。
生成コードの実行結果
sample_code.c : 検証用プロンプトにて生成されたコードsample_test.c : 生成されたテストコード
$ gcc -Wall -o sample_code sample_code.c
$ gcc -Wall -o sample_test sample_test.c
$ ./sample_code 1 5
1 2 3 4 5
$ ./sample_code -3 3
-3 -2 -1 0 1 2 3
$ ./sample_code 1 1
1
$ ./sample_code 5 1
x ← 配列初期化が無いため不定文字出力
$ ./sample_test
PASS: basic range 1 to 5
PASS: single value 3 to 3
PASS: negative range -2 to 2
PASS: empty range 5 to 3 ← テストコード内で配列初期化しているためテストは通る
PASS: range 0 to 10
5/5 tests passed
$ vi sample_code.c ← 配列初期化処理を追加
$ gcc -Wall -o sample_code sample_code.c
$ ./sample_code 5 1
$
(7) temperature=0.15; top_p=0.7; top_k=--
2026-09-07
total duration: 5m42.777802204s
load duration: 1.910776ms
prompt eval count: 195 token(s)
prompt eval cached: 191 token(s)
prompt eval duration: 287.596ms
prompt eval rate: 13.91 tokens/s
eval count: 2160 token(s)
eval duration: 5m42.362147s
eval rate: 6.31 tokens/s
(GPU無)
コード生成結果の概要
・C言語による生成
・コード以外の出力無し
・コードの記述スタイルをオールマンで生成
・戻り値は stdlib.h の EXIT_*** を使用
・文字列生成関数
文字列長に応じたメモリの確保(エラー処理有)
文字列用メモリの初期化
インクリメント+空白区切りで文字列用メモリに書き込み
文字列用メモリへのポインタを返す
・main()
引数個数のチェック(エラー処理有)
文字列生成関数の呼び出し(エラー処理有)
生成文字列の標準出力への出力
文字列用メモリの解放
・テストコードを別途生成
実行用コードと同一の文字列生成関数定義を記述
main()を伴うテストコード
文字列生成関数を6種類の引数の組み合わせでテスト実行
(1) 整数1 < 整数2
(2) 整数1 == 整数2
(3) 整数1 < 整数2 ただし、整数1が負数
(4) 整数1 < 整数2 ただし、整数1が0
(5) 整数1 < 整数2 ただし、整数1、整数2が共に5桁以上
(6) 整数1 > 整数2
(注) LLMの生成結果は毎回一定ではないため、結果によっては上記内容通りではないことが考えられます。
生成コードの実行結果
sample_code.c : 検証用プロンプトにて生成されたコードsample_test.c : 生成されたテストコード
$ gcc -Wall -o sample_code sample_code.c
$ gcc -Wall -o sample_test sample_test.c
$ ./sample_code 1 5
1 2 3 4 5
$ ./sample_code -3 3
-3 -2 -1 0 1 2 3
$ ./sample_code 1 1
1
$ ./sample_code 5 1
Memory allocation failed
$ ./sample_test
[PASS] test_basic_range
[PASS] test_single_value
[PASS] test_negative_range
[PASS] test_zero_to_positive
[PASS] test_large_numbers
[FAIL] test_start_greater_than_end
expected: "" ← 期待値がNULLでは無く空文字
actual: "(null)"
5/6 tests passed
$ vi sample_test.c ← 比較処理の一部修正と期待値をNULLに設定
$ gcc -Wall -o sample_test sample_test.c
$ ./sample_test
[PASS] test_basic_range
[PASS] test_single_value
[PASS] test_negative_range
[PASS] test_zero_to_positive
[PASS] test_large_numbers
[PASS] test_start_greater_than_end
6/6 tests passed
(8) temperature=0.15; top_p=0.5; top_k=--
2026-09-07
total duration: 5m29.514656102s
load duration: 2.262932ms
prompt eval count: 195 token(s)
prompt eval cached: 191 token(s)
prompt eval duration: 286.512ms
prompt eval rate: 13.96 tokens/s
eval count: 2087 token(s)
eval duration: 5m29.068225s
eval rate: 6.34 tokens/s
(GPU無)
コード生成結果の概要
・C言語による生成
・コード以外の出力無し
・コードの記述スタイルをオールマンで生成
・戻り値は stdlib.h の EXIT_*** を使用
・文字列生成関数
引数値のチェック(エラー判定有)
文字列長に応じたメモリの確保(エラー処理有)
文字列用メモリの初期化
インクリメント+空白区切りで文字列用メモリに書き込み
文字列用メモリへのポインタを返す
・main()
引数個数のチェック(エラー処理有)
文字列生成関数の呼び出し(エラー処理有)
生成文字列の標準出力への出力
文字列用メモリの解放
・テストコードを別途生成
テスト対象関数の宣言
main()を伴うテストコード
文字列生成関数を5種類の引数の組み合わせでテスト実行
(1) 整数1 < 整数2
(2) 整数1 < 整数2 ただし、整数1が0
(3) 整数1 == 整数2
(4) 整数1 < 整数2 ただし、整数1が負数
(5) 整数1 < 整数2 ただし、整数1、整数2の差が大きい
(注) LLMの生成結果は毎回一定ではないため、結果によっては上記内容通りではないことが考えられます。
生成コードの実行結果
sample_code.c : 検証用プロンプトにて生成されたコードsample_test.c : 生成されたテストコード
$ gcc -Wall -o sample_code sample_code.c
$ gcc -Wall -o sample_test sample_code.c sample_test.c
/bin/ld: /tmp/cc7xE7Lt.o: in function `main':
sample_test.c:(.text+0x3f2): multiple definition of `main'; /tmp/cct5BnaK.o:sample_code.c:(.text+0xfd): first defined here
collect2: error: ld returned 1 exit status
$ vi sample_code.c ← main()関数重複エラー解消のため条件付きコンパイル用の#ifndefマクロを追加
$ gcc -D TEST_MAIN -Wall -o sample_test sample_code.c sample_test.c
$ ./sample_code 1 5
1 2 3 4 5
$ ./sample_code -3 3
-3 -2 -1 0 1 2 3
$ ./sample_code 1 1
1
$ ./sample_code 5 1
Error: invalid range
$ ./sample_test
=== Running tests ===
test_basic_range:
PASS: "1 2 3 4 5"
PASS: "0 1 2 3"
test_single_value:
PASS: "7"
test_negative_range:
PASS: "-2 -1 0 1 2"
test_invalid_range:
PASS: NULL
test_large_range:
PASS: "10 11 12 13 14 15"
=== Results: 6/6 passed ===
(9) temperature=0.15; top_p=0.4; top_k=--
2026-09-07
total duration: 5m4.834154833s
load duration: 1.939058ms
prompt eval count: 195 token(s)
prompt eval cached: 191 token(s)
prompt eval duration: 282.81ms
prompt eval rate: 14.14 tokens/s
eval count: 1926 token(s)
eval duration: 5m4.404103s
eval rate: 6.33 tokens/s
(GPU無)
コード生成結果の概要
・C言語による生成
・コード以外の出力無し
・コードの記述スタイルをオールマンで生成
・戻り値は stdlib.h の EXIT_*** を使用
・文字列生成関数
引数値のチェック(エラー判定有)
文字列長に応じたメモリの確保(エラー処理有)
文字列用メモリの初期化
インクリメント+空白区切りで文字列用メモリに書き込み
文字列用メモリへのポインタを返す
・main()
引数個数のチェック(エラー処理有)
文字列生成関数の呼び出し(エラー処理有)
生成文字列の標準出力への出力
文字列用メモリの解放
・テストコードを別途生成
テスト対象関数の宣言
main()を伴うテストコード
戻り値のNULLチェックと期待値との比較のセットを実行
文字列生成関数を6種類の引数の組み合わせでテスト実行
(1) 整数1 < 整数2
(2) 整数1 == 整数2
(3) 整数1 < 整数2 ただし、整数1が負数
(4) 整数1 > 整数2
(5) 整数1 == 整数2 ただし、整数1、整数2が共に0
(6) 整数1 < 整数2 ただし、整数1、整数2の差が大きい
(注) LLMの生成結果は毎回一定ではないため、結果によっては上記内容通りではないことが考えられます。
生成コードの実行結果
sample_code.c : 検証用プロンプトにて生成されたコードsample_test.c : 生成されたテストコード
$ gcc -Wall -o sample_code sample_code.c
$ gcc -Wall -o sample_test sample_code.c sample_test.c
/bin/ld: /tmp/ccYEfYGQ.o: in function `main':
sample_test.c:(.text+0x6f6): multiple definition of `main'; /tmp/ccLFtvZT.o:sample_code.c:(.text+0x16b): first defined here
collect2: error: ld returned 1 exit status
$ vi sample_code.c ← main()関数重複エラー解消のため条件付きコンパイル用の#ifndefマクロを追加
$ gcc -D TEST_MAIN -Wall -o sample_test sample_code.c sample_test.c
$ ./sample_code 1 5
1 2 3 4 5
$ ./sample_code -3 3
-3 -2 -1 0 1 2 3
$ ./sample_code 1 1
1
$ ./sample_code 5 1
$ ./sample_test
PASS: result is not NULL
PASS: range 1 to 5
PASS: single value not NULL
PASS: range 7 to 7
PASS: negative range not NULL
PASS: range -2 to 2
PASS: empty range not NULL
PASS: start > end returns empty
PASS: zero range not NULL
PASS: range 0 to 0
PASS: large range not NULL
PASS: range 10 to 15
--- Results: 12/12 passed, 0 failed ---
(10) temperature=0.15; top_p=0.7; top_k=32
2026-09-07
total duration: 4m26.13304421s
load duration: 1.833999ms
prompt eval count: 195 token(s)
prompt eval cached: 191 token(s)
prompt eval duration: 284.243ms
prompt eval rate: 14.07 tokens/s
eval count: 1710 token(s)
eval duration: 4m25.699515s
eval rate: 6.44 tokens/s
(GPU無)
コード生成結果の概要
・C言語による生成
・コード以外の出力無し
・コードの記述スタイルをオールマンで生成
・戻り値は stdlib.h の EXIT_*** を使用
・文字列生成関数
引数値のチェック(エラー判定有)
文字列長に応じたメモリの確保(エラー処理有)
文字列用メモリの初期化
インクリメント+空白区切りで文字列用メモリに書き込み
文字列用メモリへのポインタを返す
・main()
引数個数のチェック(エラー処理有)
文字列生成関数の呼び出し(エラー処理有)
生成文字列の標準出力への出力
文字列用メモリの解放
・テストコードを別途生成
テスト対象関数の宣言
main()を伴うテストコード
文字列生成関数を6種類の引数の組み合わせでテスト実行
(1) 整数1 < 整数2
(2) 整数1 == 整数2
(3) 整数1 < 整数2 ただし、整数1が負数
(4) 整数1 > 整数2
(5) 整数1 < 整数2 ただし、整数1、整数2の差が大きい
(6) 整数1 == 整数2 ただし、整数1、整数2が共に0
(注) LLMの生成結果は毎回一定ではないため、結果によっては上記内容通りではないことが考えられます。
生成コードの実行結果
sample_code.c : 検証用プロンプトにて生成されたコードsample_test.c : 生成されたテストコード
$ gcc -Wall -o sample_code sample_code.c
$ gcc -Wall -o sample_test sample_code.c sample_test.c
/bin/ld: /tmp/ccTpCefz.o: in function `main':
sample_test.c:(.text+0x28d): multiple definition of `main'; /tmp/cczQylOP.o:sample_code.c:(.text+0x195): first defined here
collect2: error: ld returned 1 exit status
$ vi sample_code.c ← main()関数重複エラー解消のため条件付きコンパイル用の#ifndefマクロを追加
$ gcc -D TEST_MAIN -Wall -o sample_test sample_code.c sample_test.c
$ ./sample_code 1 5
1 2 3 4 5
$ ./sample_code -3 3
-3 -2 -1 0 1 2 3
$ ./sample_code 1 1
1
$ ./sample_code 5 1
$ ./sample_test
[PASS] test_basic_range
[PASS] test_single_value
[PASS] test_negative_range
[PASS] test_start_greater_than_end
[PASS] test_large_range
[PASS] test_zero_range
--- Results: 6/6 passed, 0 failed ---
(11) temperature=0.15; top_p=0.7; top_k=16
2026-09-07
total duration: 5m8.788109544s
load duration: 1.866442ms
prompt eval count: 195 token(s)
prompt eval cached: 191 token(s)
prompt eval duration: 305.122ms
prompt eval rate: 13.11 tokens/s
eval count: 1978 token(s)
eval duration: 5m8.338837s
eval rate: 6.42 tokens/s
(GPU無)
コード生成結果の概要
・C言語による生成
・コード以外の出力無し
・コードの記述スタイルをオールマンで生成
・戻り値は stdlib.h の EXIT_*** を使用
・文字列生成関数
引数値のチェック(エラー判定有)
文字列長に応じたメモリの確保(エラー処理有)
文字列用メモリの初期化
インクリメント+空白区切りで文字列用メモリに書き込み
文字列用メモリへのポインタを返す
・main()
引数個数のチェック(エラー処理有)
文字列生成関数の呼び出し(エラー処理有)
生成文字列の標準出力への出力
文字列用メモリの解放
・テストコードを別途生成
テスト対象関数の宣言
main()を伴うテストコード
文字列生成関数を6種類の引数の組み合わせでテスト実行
(1) 整数1 < 整数2
(2) 整数1 == 整数2
(3) 整数1 < 整数2 ただし、整数1が負数
(4) 整数1 > 整数2
(5) 整数1 == 整数2 ただし、整数1、整数2が共に0
(6) 整数1 < 整数2 ただし、整数1、整数2の差が大きい
(注) LLMの生成結果は毎回一定ではないため、結果によっては上記内容通りではないことが考えられます。
生成コードの実行結果
sample_code.c : 検証用プロンプトにて生成されたコードsample_test.c : 生成されたテストコード
$ gcc -Wall -o sample_code sample_code.c
$ gcc -Wall -o sample_test sample_code.c sample_test.c
/bin/ld: /tmp/cc0eLYqW.o: in function `main':
sample_test.c:(.text+0x2be): multiple definition of `main'; /tmp/cckm0VfH.o:sample_code.c:(.text+0xfe): first defined here
collect2: error: ld returned 1 exit status
$ vi sample_code.c ← main()関数重複エラー解消のため条件付きコンパイル用の#ifndefマクロを追加
$ gcc -D TEST_MAIN -Wall -o sample_test sample_code.c sample_test.c
$ ./sample_code 1 5
1 2 3 4 5
$ ./sample_code -3 3
-3 -2 -1 0 1 2 3
$ ./sample_code 1 1
1
$ ./sample_code 5 1
Error: invalid range
$ ./sample_test
[PASS] basic_range_1_to_5
[PASS] single_value_7_to_7
[PASS] negative_range_-2_to_2
[PASS] invalid_range_5_to_1
[PASS] zero_range_0_to_0
[PASS] large_range_100_to_105
6/6 tests passed
(12) temperature=0.10; top_p=0.7; top_k=--
2026-09-07
total duration: 8m14.807417895s
load duration: 1m27.095293797s
prompt eval count: 195 token(s)
prompt eval duration: 6.943768s
prompt eval rate: 28.08 tokens/s
eval count: 2502 token(s)
eval duration: 6m40.658509s
eval rate: 6.24 tokens/s
(GPU無)
コード生成結果の概要
・C言語による生成
・コード以外の出力無し
・コードの記述スタイルをオールマンで生成
・戻り値は stdlib.h の EXIT_*** を使用
・文字列生成関数
引数値のチェック(エラー判定有)
文字列長に応じたメモリの確保(エラー処理有)
文字列用メモリの初期化
インクリメント+空白区切りで文字列用メモリに書き込み
文字列用メモリへのポインタを返す
・main()
引数個数のチェック(エラー処理有)
文字列生成関数の呼び出し(エラー処理有)
生成文字列の標準出力への出力
文字列用メモリの解放
テスト時にmain()除外のマクロを配置
・テストコードを別途生成
sample_code.cをインクルード
main()を伴うテストコード
文字列生成関数を6種類の引数の組み合わせでテスト実行
(1) 整数1 < 整数2
(2) 整数1 == 整数2
(3) 整数1 < 整数2 ただし、整数1が負数
(4) 整数1 > 整数2
(5) 整数1 == 整数2 ただし、整数1、整数2が共に0
(6) 整数1 < 整数2 ただし、整数1、整数2の差が大きい
(注) LLMの生成結果は毎回一定ではないため、結果によっては上記内容通りではないことが考えられます。
生成コードの実行結果
sample_code.c : 検証用プロンプトにて生成されたコードsample_test.c : 生成されたテストコード
$ gcc -Wall -o sample_code sample_code.c
$ gcc -Wall -o sample_test sample_test.c
$ ./sample_code 1 5
1 2 3 4 5
$ ./sample_code -3 3
-3 -2 -1 0 1 2 3
$ ./sample_code 1 1
1
$ ./sample_code 5 1
Error: invalid range
$ ./sample_test
[PASS] basic_range_1_to_5
[PASS] single_value_7_to_7
[PASS] negative_range_minus2_to_2
[PASS] invalid_range_returns_null
[PASS] zero_range_0_to_0
[PASS] large_range_10_to_15
6/6 tests passed