Skip to content

Instantly share code, notes, and snippets.

@hadashiA
Last active March 29, 2017 07:48
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 hadashiA/35d34b5ba0d05433f41286151d80e75e to your computer and use it in GitHub Desktop.
Save hadashiA/35d34b5ba0d05433f41286151d80e75e to your computer and use it in GitHub Desktop.
using System.Diagnostics;
using UnityEngine;
public class FatClass
{
public long M01;
public long M02;
public long M03;
public long M04;
public long M05;
public long M06;
public long M07;
public long M08;
public long M09;
public long M10;
public long M11;
public long M12;
public long M13;
public long M14;
public long M15;
public long M16;
public long M17;
public long M18;
public long M19;
public long M20;
public long M21;
public long M22;
public long M23;
public long M24;
public long M25;
public long M26;
public long M27;
public long M28;
public long M29;
public long M30;
public long M31;
public long M32;
public long M33;
public long M34;
public long M35;
public long M36;
public long M37;
public long M38;
public long M39;
public long M40;
public long M41;
public long M42;
public long M43;
public long M44;
public long M45;
public long M46;
public long M47;
public long M48;
public long M49;
public long M50;
public long M51;
public long M52;
public long M53;
public long M54;
public long M55;
public long M56;
public long M57;
public long M58;
public long M59;
public long M60;
public long M61;
public long M62;
public long M63;
public long M64;
public long M65;
public long M66;
public long M67;
public long M68;
public long M69;
public long M70;
public long M71;
public long M72;
public long M73;
public long M74;
public long M75;
public long M76;
public long M77;
public long M78;
public long M79;
public long M80;
public long M81;
public long M82;
public long M83;
public long M84;
public long M85;
public long M86;
public long M87;
public long M88;
public long M89;
public long M90;
public long M91;
public long M92;
public long M93;
public long M94;
public long M95;
public long M96;
public long M97;
public long M98;
public long M99;
}
public struct FatStruct
{
public long M01;
public long M02;
public long M03;
public long M04;
public long M05;
public long M06;
public long M07;
public long M08;
public long M09;
public long M10;
public long M11;
public long M12;
public long M13;
public long M14;
public long M15;
public long M16;
public long M17;
public long M18;
public long M19;
public long M20;
public long M21;
public long M22;
public long M23;
public long M24;
public long M25;
public long M26;
public long M27;
public long M28;
public long M29;
public long M30;
public long M31;
public long M32;
public long M33;
public long M34;
public long M35;
public long M36;
public long M37;
public long M38;
public long M39;
public long M40;
public long M41;
public long M42;
public long M43;
public long M44;
public long M45;
public long M46;
public long M47;
public long M48;
public long M49;
public long M50;
public long M51;
public long M52;
public long M53;
public long M54;
public long M55;
public long M56;
public long M57;
public long M58;
public long M59;
public long M60;
public long M61;
public long M62;
public long M63;
public long M64;
public long M65;
public long M66;
public long M67;
public long M68;
public long M69;
public long M70;
public long M71;
public long M72;
public long M73;
public long M74;
public long M75;
public long M76;
public long M77;
public long M78;
public long M79;
public long M80;
public long M81;
public long M82;
public long M83;
public long M84;
public long M85;
public long M86;
public long M87;
public long M88;
public long M89;
public long M90;
public long M91;
public long M92;
public long M93;
public long M94;
public long M95;
public long M96;
public long M97;
public long M98;
public long M99;
}
public static class Hoge
{
public static long PassValue(FatStruct x)
{
return x.M01 + x.M02 + 1l;
}
public static long PassRef(FatClass x)
{
return x.M01 + x.M02 + 1l;
}
}
public class Benchmark : MonoBehaviour
{
void Start()
{
var fatClass = new FatClass();
var fatStruct = new FatStruct();
var stopwatch = new Stopwatch();
stopwatch.Start();
for (var i = 0; i < 100000; i++)
{
// Hoge.PassValue(new FatStruct());
Hoge.PassValue(fatStruct);
}
stopwatch.Stop();
UnityEngine.Debug.LogFormat("[STRUCT] {0}", stopwatch.Elapsed);
stopwatch.Start();
for (var i = 0; i < 100000; i++)
{
// Hoge.PassRef(new FatClass());
Hoge.PassRef(fatClass);
}
stopwatch.Stop();
UnityEngine.Debug.LogFormat("[CLASS] {0}", stopwatch.Elapsed);
}
}
@hadashiA
Copy link
Author

[STRUCT] 00:00:00.0370210
[CLASS] 00:00:00.0380370

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment