[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"me":3,"catalog:en:game-dev\u002Fun-csharp-memory-gc-performance":4,"config":231},null,{"field_key":5,"field_name":6,"seniority":7,"topic_key":8,"topic_name":9,"spec_key":7,"spec_name":7,"locale":10,"cell_total":11,"field_total":12,"seniorities":13,"topics":17,"specs":130,"samples":147},"game-dev","Game Development","","un-csharp-memory-gc-performance","Un Csharp Memory Gc Performance","en",75,2850,[14,15,16],"junior","mid","senior",[18,21,24,27,30,33,36,39,42,45,48,51,54,57,60,63,66,69,72,75,78,81,84,87,90,93,96,99,102,105,108,111,114,115,118,121,124,127],{"key":19,"name":20,"count":11},"game-ai-pathfinding","Game Ai Pathfinding",{"key":22,"name":23,"count":11},"game-input-audio","Game Input Audio",{"key":25,"name":26,"count":11},"game-loop-fundamentals","Game Loop Fundamentals",{"key":28,"name":29,"count":11},"game-networking-multiplayer","Game Networking Multiplayer",{"key":31,"name":32,"count":11},"game-performance-optimization","Game Performance Optimization",{"key":34,"name":35,"count":11},"game-physics-collision","Game Physics Collision",{"key":37,"name":38,"count":11},"game-rendering-pipeline","Game Rendering Pipeline",{"key":40,"name":41,"count":11},"game-state-management","Game State Management",{"key":43,"name":44,"count":11},"gfx-forward-deferred-architectures","Gfx Forward Deferred Architectures",{"key":46,"name":47,"count":11},"gfx-gpu-pipeline-stages","Gfx Gpu Pipeline Stages",{"key":49,"name":50,"count":11},"gfx-post-processing-aa-hdr","Gfx Post Processing Aa Hdr",{"key":52,"name":53,"count":11},"gfx-shading-lighting-pbr","Gfx Shading Lighting Pbr",{"key":55,"name":56,"count":11},"gfx-shadows-depth-precision","Gfx Shadows Depth Precision",{"key":58,"name":59,"count":11},"gfx-textures-sampling-compression","Gfx Textures Sampling Compression",{"key":61,"name":62,"count":11},"gp-ability-cooldown-damage","Gp Ability Cooldown Damage",{"key":64,"name":65,"count":11},"gp-animation-state-locomotion","Gp Animation State Locomotion",{"key":67,"name":68,"count":11},"gp-camera-follow-targeting","Gp Camera Follow Targeting",{"key":70,"name":71,"count":11},"gp-character-controller-movement","Gp Character Controller Movement",{"key":73,"name":74,"count":11},"gp-frame-windows-game-feel","Gp Frame Windows Game Feel",{"key":76,"name":77,"count":11},"gp-interaction-detection-triggers","Gp Interaction Detection Triggers",{"key":79,"name":80,"count":11},"nc-rollback-determinism","Nc Rollback Determinism",{"key":82,"name":83,"count":11},"nc-security-protocol","Nc Security Protocol",{"key":85,"name":86,"count":11},"nc-serialization-bandwidth","Nc Serialization Bandwidth",{"key":88,"name":89,"count":11},"nc-time-sync-tick","Nc Time Sync Tick",{"key":91,"name":92,"count":11},"nc-topology-nat-relay","Nc Topology Nat Relay",{"key":94,"name":95,"count":11},"nc-transport-reliability","Nc Transport Reliability",{"key":97,"name":98,"count":11},"ue-actor-component-lifecycle","Ue Actor Component Lifecycle",{"key":100,"name":101,"count":11},"ue-blueprint-cpp-interop","Ue Blueprint Cpp Interop",{"key":103,"name":104,"count":11},"ue-containers-strings-memory","Ue Containers Strings Memory",{"key":106,"name":107,"count":11},"ue-gameplay-framework-classes","Ue Gameplay Framework Classes",{"key":109,"name":110,"count":11},"ue-modules-build-packaging","Ue Modules Build Packaging",{"key":112,"name":113,"count":11},"ue-uobject-reflection-gc","Ue Uobject Reflection Gc",{"key":8,"name":9,"count":11},{"key":116,"name":117,"count":11},"un-gameobject-component-transform","Un Gameobject Component Transform",{"key":119,"name":120,"count":11},"un-jobs-burst-dots-basics","Un Jobs Burst Dots Basics",{"key":122,"name":123,"count":11},"un-monobehaviour-lifecycle-execution-order","Un Monobehaviour Lifecycle Execution Order",{"key":125,"name":126,"count":11},"un-prefabs-instantiate-pooling-addressables","Un Prefabs Instantiate Pooling Addressables",{"key":128,"name":129,"count":11},"un-scriptableobject-serialization","Un Scriptableobject Serialization",[131,135,138,141,144],{"key":132,"name":133,"count":134},"gameplay","Gameplay",450,{"key":136,"name":137,"count":134},"graphics-rendering","Graphics \u002F Rendering",{"key":139,"name":140,"count":134},"multiplayer-netcode","Multiplayer \u002F Netcode",{"key":142,"name":143,"count":134},"unity-csharp","Unity (C#)",{"key":145,"name":146,"count":134},"unreal-cpp","Unreal (C++)",[148,166,179,192,205,218],{"id":149,"topic":9,"difficulty":150,"body":151,"options":152,"correct_key":157,"explanation":165},"01a011b4-2a04-744e-8602-2e61ad8fe07d",1,"In the Unity Profiler's CPU Usage module, what does the \"GC Alloc\" column for a given frame show?",[153,156,159,162],{"key":154,"text":155},"a","The total size of the managed heap reserved by the runtime.",{"key":157,"text":158},"b","The amount of managed memory script code allocated during that frame.",{"key":160,"text":161},"c","The amount of native (C++) memory Unity's engine allocated that frame.",{"key":163,"text":164},"d","The number of garbage collection passes that ran since the app started.","\"GC Alloc\" reports how much managed memory your script code allocated in that specific frame, which is the number to watch when hunting per-frame allocations in Update.",{"id":167,"topic":9,"difficulty":150,"body":168,"options":169,"correct_key":154,"explanation":178},"01a011b4-2ab5-76e2-b247-ad1cfd88439c","In C#, when a struct variable is assigned to another struct variable, what happens?",[170,172,174,176],{"key":154,"text":171},"The full value is copied; the two copies are independent.",{"key":157,"text":173},"Both variables end up referencing the same memory location on the heap.",{"key":160,"text":175},"Only a pointer to the original struct is stored in the new variable.",{"key":163,"text":177},"The assignment allocates a new object on the managed heap automatically.","A struct is a value type, so assignment copies its full contents; the source and destination are independent, unlike reference types which share the same heap object.",{"id":180,"topic":9,"difficulty":150,"body":181,"options":182,"correct_key":160,"explanation":191},"01a011b4-2ab7-7726-b8d7-89623126e0e0","In Unity's Mono scripting backend, when is your C# script code compiled into machine code?",[183,185,187,189],{"key":154,"text":184},"Entirely during the Unity Editor's asset import step, before any build exists.",{"key":157,"text":186},"Never — Mono interprets the C# bytecode line by line at every call.",{"key":160,"text":188},"At runtime, just-in-time, as the IL executes on the device.",{"key":163,"text":190},"Ahead of time, by translating the IL into C++ during the build.","Mono is a just-in-time (JIT) runtime: it compiles the intermediate language to machine code as the app runs, rather than translating it to native code ahead of time like IL2CPP does.",{"id":193,"topic":9,"difficulty":150,"body":194,"options":195,"correct_key":163,"explanation":204},"01a011b4-2ac2-738b-bbbe-5e09cb0ca07d","In UnityEngine, what kind of C# type is Vector3?",[196,198,200,202],{"key":154,"text":197},"An abstract class that concrete vector implementations inherit from.",{"key":157,"text":199},"A sealed reference class allocated on the managed heap on creation.",{"key":160,"text":201},"An interface implemented separately by each supported platform's math library.",{"key":163,"text":203},"A struct — a value type stored inline, not on the managed heap.","Vector3 (like Quaternion and most UnityEngine math types) is a struct: a value type, so passing or copying it does not by itself allocate on the managed heap.",{"id":206,"topic":9,"difficulty":150,"body":207,"options":208,"correct_key":154,"explanation":217},"01a011b4-2acb-7ecf-b3b1-76583f450db3","What is the main practical difference between Physics.RaycastAll and Physics.RaycastNonAlloc?",[209,211,213,215],{"key":154,"text":210},"RaycastNonAlloc writes hits into an array you supply, instead of allocating a new array.",{"key":157,"text":212},"RaycastNonAlloc can detect colliders on a different physics layer than RaycastAll.",{"key":160,"text":214},"RaycastAll runs on a background thread while RaycastNonAlloc always runs on the main thread.",{"key":163,"text":216},"RaycastNonAlloc ignores trigger colliders entirely, while RaycastAll always includes them.","Physics.RaycastAll allocates and returns a new RaycastHit[] every call. Physics.RaycastNonAlloc instead fills a RaycastHit[] buffer you pass in, so calling it repeatedly (e.g. every frame) produces no garbage.",{"id":219,"topic":9,"difficulty":150,"body":220,"options":221,"correct_key":157,"explanation":230},"01a011b4-2ad0-7a51-8101-8ac2d77eef2c","Why does a NativeArray\u003CT> require you to call Dispose() manually, unlike a regular managed array?",[222,224,226,228],{"key":154,"text":223},"NativeArray\u003CT> is actually a managed array under the hood, but with a stricter API.",{"key":157,"text":225},"NativeArray\u003CT> wraps unmanaged memory that lives outside the garbage collector's control.",{"key":160,"text":227},"Calling Dispose() is only a style convention; the runtime frees it anyway at frame end.",{"key":163,"text":229},"NativeArray\u003CT> memory is automatically freed the moment the array goes out of scope.","NativeArray\u003CT> allocates unmanaged (native) memory using an Allocator. The garbage collector never tracks or frees it, so the memory stays reserved until you explicitly call Dispose().",{"fields":232,"seniorities":446,"interview_shapes":447,"locales":452,"oauth":454,"question_count":457,"coach_enabled":458,"jd_match_enabled":458},[233,258,279,296,320,333,352,371,393,412,427,437],{"key":234,"name_tr":235,"name_en":235,"sort":150,"specializations":236},"backend","Backend",[237,240,243,246,249,252,255],{"key":238,"name":239,"field":234},"general","Genel",{"key":241,"name":242,"field":234},"go","Go",{"key":244,"name":245,"field":234},"python","Python",{"key":247,"name":248,"field":234},"java","Java",{"key":250,"name":251,"field":234},"csharp","C#\u002F.NET",{"key":253,"name":254,"field":234},"nodejs","Node.js",{"key":256,"name":257,"field":234},"php","PHP",{"key":259,"name_tr":260,"name_en":260,"sort":261,"specializations":262},"frontend","Frontend",2,[263,264,267,270,273,276],{"key":238,"name":239,"field":259},{"key":265,"name":266,"field":259},"javascript","JavaScript",{"key":268,"name":269,"field":259},"typescript","TypeScript",{"key":271,"name":272,"field":259},"react","React",{"key":274,"name":275,"field":259},"vue","Vue",{"key":277,"name":278,"field":259},"angular","Angular",{"key":280,"name_tr":281,"name_en":281,"sort":282,"specializations":283},"fullstack","Fullstack",3,[284,285,286,287,288,289,290,291,292,293,294,295],{"key":238,"name":239,"field":280},{"key":241,"name":242,"field":234},{"key":244,"name":245,"field":234},{"key":247,"name":248,"field":234},{"key":250,"name":251,"field":234},{"key":253,"name":254,"field":234},{"key":256,"name":257,"field":234},{"key":265,"name":266,"field":259},{"key":268,"name":269,"field":259},{"key":271,"name":272,"field":259},{"key":274,"name":275,"field":259},{"key":277,"name":278,"field":259},{"key":297,"name_tr":298,"name_en":298,"sort":299,"specializations":300},"devops-cloud","DevOps \u002F Cloud",4,[301,302,305,308,311,314,317],{"key":238,"name":239,"field":297},{"key":303,"name":304,"field":297},"aws","AWS",{"key":306,"name":307,"field":297},"gcp","GCP",{"key":309,"name":310,"field":297},"azure","Azure",{"key":312,"name":313,"field":297},"kubernetes","Kubernetes",{"key":315,"name":316,"field":297},"terraform","Terraform",{"key":318,"name":319,"field":297},"linux","Linux",{"key":321,"name_tr":322,"name_en":322,"sort":323,"specializations":324},"ai-engineer","AI Engineer",5,[325,326,327,330],{"key":238,"name":239,"field":321},{"key":244,"name":245,"field":321},{"key":328,"name":329,"field":321},"llm-rag","LLM\u002FRAG",{"key":331,"name":332,"field":321},"mlops","MLOps",{"key":334,"name_tr":335,"name_en":336,"sort":337,"specializations":338},"database","Veritabanı","Database",6,[339,340,343,346,349],{"key":238,"name":239,"field":334},{"key":341,"name":342,"field":334},"postgresql","PostgreSQL",{"key":344,"name":345,"field":334},"mysql","MySQL",{"key":347,"name":348,"field":334},"mongodb","MongoDB",{"key":350,"name":351,"field":334},"redis","Redis",{"key":353,"name_tr":354,"name_en":355,"sort":356,"specializations":357},"mobile","Mobil","Mobile",7,[358,359,362,365,368],{"key":238,"name":239,"field":353},{"key":360,"name":361,"field":353},"ios-swift","iOS (Swift)",{"key":363,"name":364,"field":353},"android-kotlin","Android (Kotlin)",{"key":366,"name":367,"field":353},"flutter","Flutter",{"key":369,"name":370,"field":353},"react-native","React Native",{"key":372,"name_tr":373,"name_en":374,"sort":375,"specializations":376},"security","Güvenlik","Security",8,[377,378,381,384,387,390],{"key":238,"name":239,"field":372},{"key":379,"name":380,"field":372},"appsec","AppSec",{"key":382,"name":383,"field":372},"offensive-pentest","Offensive \u002F Pentest",{"key":385,"name":386,"field":372},"cloud-security","Cloud Security",{"key":388,"name":389,"field":372},"devsecops","DevSecOps",{"key":391,"name":392,"field":372},"blue-team-incident","Blue Team \u002F Incident",{"key":394,"name_tr":395,"name_en":396,"sort":397,"specializations":398},"qa-test-automation","QA \u002F Test Otomasyonu","QA \u002F Test Automation",9,[399,400,403,406,409],{"key":238,"name":239,"field":394},{"key":401,"name":402,"field":394},"test-automation","Test Automation",{"key":404,"name":405,"field":394},"sdet","SDET",{"key":407,"name":408,"field":394},"performance-testing","Performance Testing",{"key":410,"name":411,"field":394},"mobile-qa","Mobile QA",{"key":413,"name_tr":414,"name_en":414,"sort":415,"specializations":416},"data-engineer","Data Engineer",10,[417,418,421,424],{"key":238,"name":239,"field":413},{"key":419,"name":420,"field":413},"pipelines-etl","Pipelines \u002F ETL",{"key":422,"name":423,"field":413},"streaming","Streaming",{"key":425,"name":426,"field":413},"warehousing","Warehousing",{"key":5,"name_tr":428,"name_en":6,"sort":429,"specializations":430},"Oyun Geliştirme",11,[431,432,433,434,435,436],{"key":238,"name":239,"field":5},{"key":142,"name":143,"field":5},{"key":145,"name":146,"field":5},{"key":132,"name":133,"field":5},{"key":136,"name":137,"field":5},{"key":139,"name":140,"field":5},{"key":438,"name_tr":439,"name_en":439,"sort":440,"specializations":441},"ml-engineer","ML Engineer",12,[442,443],{"key":238,"name":239,"field":438},{"key":444,"name":445,"field":438},"classical-ml","Classical ML",[14,15,16],{"junior":448,"mid":450,"senior":451},{"questions":449,"median_sec":3},20,{"questions":449,"median_sec":3},{"questions":449,"median_sec":3},[453,10],"tr",[455,456],"google","github",27600,true]