検証用コード
using System.Diagnostics;
using System.IO;
using System.Text;
using UnityEngine;
using Debug = UnityEngine.Debug;
public class Example : MonoBehaviour
{
private void Start()
{
const string data = "ピカチュウ";
const int count = 10_000;
{
const string key = "data";
var sw = Stopwatch.StartNew();
for ( var i = 0; i < count; i++ )
{
PlayerPrefs.SetString( key, data );
PlayerPrefs.Save();
}
Debug.Log( sw.Elapsed.TotalSeconds.ToString( "0.00" ) );
}
{
var path = $"{Application.persistentDataPath}/data.txt";
var sw = Stopwatch.StartNew();
for ( var i = 0; i < count; i++ )
{
File.WriteAllText( path, data );
}
Debug.Log( sw.Elapsed.TotalSeconds.ToString( "0.00" ) );
}
{
var path = $"{Application.persistentDataPath}/data.bytes";
var encoding = Encoding.UTF8;
var sw = Stopwatch.StartNew();
for ( var i = 0; i < count; i++ )
{
File.WriteAllBytes( path, encoding.GetBytes( data ) );
}
Debug.Log( sw.Elapsed.TotalSeconds.ToString( "0.00" ) );
}
}
}
検証結果
MacBook Pro 2021
- macOS Monterey バージョン 12.5.1
項目 |
時間 |
PlayerPrefs.SetString と PlayerPrefs.Save |
1.91 秒 |
File.WriteAllText |
0.82 秒 |
File.WriteAllBytes |
0.82 秒 |
Android
- Google Pixel 6a
- Android バージョン 13
項目 |
時間 |
PlayerPrefs.SetString と PlayerPrefs.Save |
0.18 秒 |
File.WriteAllText |
1.29 秒 |
File.WriteAllBytes |
0.83 秒 |
iOS
- iPad mini (第6世代)
- システムバージョン 15.5
項目 |
時間 |
PlayerPrefs.SetString と PlayerPrefs.Save |
0.02 秒 |
File.WriteAllText |
0.92 秒 |
File.WriteAllBytes |
0.87 秒 |
検証環境