Last active
March 29, 2017 07:48
-
-
Save hadashiA/35d34b5ba0d05433f41286151d80e75e to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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); | |
} | |
} |
Author
hadashiA
commented
Mar 29, 2017
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment