ºÝºÝߣ

ºÝºÝߣShare a Scribd company logo
??? ??? ????2 ???
??? ????? ??? ???
???
?? ??? ?? ?????
?? ?? ??? ?? ?? ? ?? ? ?? ??????.
??? ??
KAIST CS 07
algospot.com ???
??? ???(?)
2015.1 - 2015.2
???? ????2? ????? ????
?? ?? ??? ?? ??
?? ??
??? ????(?) ?? ?????? ??? ??
??? ??? 32?? ????? ???? ??? ?? ??? 2GB
??? ??? ?? ? ?? ?? ???? ??? ??
??? ???? ???
??? ???? ???? ??? ?? ???? ??? ???
??? ???? ??? ??? ???? ? ? ???
???? ?? ???
???? ???? ???? ???? ???? ???
???? ???? ????? ???? ??? ???? ???
...
?? ?? ??
?
?? ???? ?? ??? ??? ? ??
¡ú ??? ??? ???? ???
? ?? ???? ??? ??? ??? ??
???? UE3 ?? ??? ??
?? ?? ??? ??
?? ??? ???? ??? ?
???? ?? ??? ??? ??? ?? ???? ???
?? ??? ????? ?? (?? DirectX)
?? ??? ???? ???? ???...
? ??? ???? ??? ?? ??? ?
e.g.
??: UDN, Epic Games, Inc.
https://pzurita.wordpress.com/2015/02/10/limitations-of-memory-
tracking-features-in-unreal-engine-4/
?? ???? ???
??? ????? ????? ??
?? ??? ?? ?? ??? ?? ?? ??
????? ???
¡ú ??? ?? ??? ?? ?? ??
D3D: ??? ??? DLL ??
D3D ???? HeapAlloc()? ?? ??
IAT ??? ?? ??
???: ??? ? ???? ? ? ???
?? ??? ?????? ??? ??
??? ??? ??
?? ????
??? ??? ???? ?? ??
??????? ??
?? ?? ???? ??? ??? ??, ?? ??
??? ????
1. Write down the problem. ¡û ??!
2. Think real hard.
3. Write down the solution.
?? - ???? ????
???? 2GB ??? ??? ?? ???? ?? ??? ???
????? "??"? ??? ???? ????
??????,
????? ??? ??? ? ?? ?: ??? ???? ????? ?????
?? ??? ??? ???
??, ??, ??? ???
?? ?? - ??? ????
??: https://www.youtube.com/watch?v=jZcPG_czvpg
?
?? ?? - ??? ????
??: https://www.youtube.com/watch?v=jZcPG_czvpg
???_??_??_??.gif
?? ?? - ??? ????
??: https://www.youtube.com/watch?v=66Azd9z3l9I
?
?? ?? - ??? ????
??: https://www.youtube.com/watch?v=66Azd9z3l9I
?????_?????_??????_??.gif
?? ?? - ??? ????
??: Ugly Americans, Season 2, The Ring of Powers (2011),
http://redd.it/2gjm8c
?
?? ?? - ??? ????
??: Ugly Americans, Season 2, The Ring of Powers (2011),
http://redd.it/2gjm8c
????_??_???_??_???.gif
??? ? ?? ???
???? ??? ????? ???
??? ?? ?? ? ???
?? ??? ??? ??? ? ?? ?????? ??? ??!
???? ???? ???? ??? ???? ?? ??
??? ???(???) ??? ???? ? ¡ú ? ??? ??
? ??? ?? ?? ???:
???? ????? ???? ?? ???? ?????? ???
??PROFILE_HERE("hierarchy/path/string",?[]()?{
??????work_hard()?
??})?
?? ??: ?? ??
?? ??? ??? ?? ????
1. ???? ??? ?? ?? ??
2. ??? ??? ???
3. ???? ?? ?? ???? ???? ?? ??? ????
4. ? ??? ??? ????? ?? ? ??? ????
5. ????? ??? ??? 3?? ??? ????
£ßÈËÈËÈËÈËÈËÈË£ß
£¾ ??? ?? £¼
£þY^Y^Y^Y^Y^Y^£þ
??
?? ???/?? ?? ?? ??? ???, ??????? ???
?????? ??? ??? ?? ? ?? ??????.
??? ?????
??? ???? ??? ??? ???? ????? ??
??? & ??
??? ???? ???? ?? ??? ??? ?? (?? ??? ?)
??? & ??
??? ??? ?? ???? ??
??? & ??
? ??? ???? ??? ????
??? & ??
?? ??? ?? ?? ??
??? & ??
UE3 ?? ??? ??? ???? ?????? ??? ?? ??
??? & ??
? ??? ?? ?? ??? ?? ???
?? ????, ?? ???? ? ?? ??
????? ?? ?? ?? ??
?? ??? ?? ??? ? ???? ?? ???? ? ??
????? ?? ?? ?? ??
? ??? ??? ? ??? ???? ?? ??? ?? ?? ???
????? ???
????? ?? ?? ?? ??
????? ????? ?? ??? ?? ???? ??? ?? ??
??? ??? ??/??? ?????
1. ?? ??? ??? ???.
2. ???? TagScope()?? ??? ???? ?? ??? ????.
??? thread-local ??? ??? boost::thread_specific_ptr
3. ??? ??? ???? ??? ??? ?? ??? ?????.
?MemoryAllocationProfiler::TagScope(
?????//?e.g.?"Sound/Ambient/Level001/Foo"
?????TEXT("Sound/")?+?soundName.Replace(TEXT("."),?TEXT("/")),
?????[&,?this]()
?????{
?????????original_code()?
?????})?
TAGSCOPE()? ?? ????
???? ????? ????
? ?? ?? ?? ?? ??
? A, ? ?? ? B, ? ?? ? C? A¡úB¡úC ?? C¡úB¡úA ? ???
???? ?? ? ??
??? ??? ?? ???? ??? ??
?? ???? ????? ?? ??? ?? ??? ? ? ??
????
???
???
??: ?? ??, 38?
waifu2x ???
???? 1. ??
?? ?? ? ??? ? ?
???? ?? ?? ???
????? ??? ??? ? ?? ??? ?? ???? ??
?? ??? ? ????
HTML + CSS + JS
v.
C#/WPF
??? ???? ??????...
? ??? ???? ?? ??
1. ?? ??? ????? ?????? ?? ?? ?
??? DOM ??? ??? ??
???? ???? ?? ???? ??? ???? ?? ??
???? ???? ? ??? ?? ??? ???? ?? ...
2. ??? ??? ???? ??
??? ? ?????? ?? ??? ?? ??? ???
3. ? ?? ??? ?? ???
?? ? ???? ?? ????? ??? ?? ???? ?? ??
4. C# ?? ????? ???
???? ?? ??? ?
<!???WPF?XAML??????>
<datavis:TreeMap
????Name="TreeMap"?Grid.Row="0"
????HorizontalAlignment="Stretch"?VerticalAlignment="Stretch"
????ItemsSource="{Binding?ElementName=MainWindowInstance,?Path=TreeMapNode.TreeMapChildre
????ItemDefinitionSelector="{StaticResource?TreeMapItemDefinitionSelector}"?/>
<GridSplitter
????Name="RootGridSplitter"?Grid.Row="1"
????Height="5"?HorizontalAlignment="Stretch"?/>
<sd:SharpTreeView?Name="TreeView"?Grid.Row="2"
????Root="{Binding?ElementName=MainWindowInstance,?Path=RootNode}"
????HorizontalAlignment="Stretch"?VerticalAlignment="Stretch"
????ItemContainerStyle="{StaticResource?TreeViewItemStyle}"
????ShowAlternation="True"?SelectionMode="Single"
????GridViewColumnHeader.Click="TreeView_Header_Click"
????SelectionChanged="TreeView_SelectionChanged"><!???...???></sd:SharpTreeView>
WPF Toolkit ( )
#develop SharpTreeView ( )
https://wpf.codeplex.com/
https://github.com/icsharpcode/SharpDevelop
???? 2. ??
??? ?? ???
?? ?????? ????...
??? ??? ? ?? ?? ? ??
?? ??? ?? ???? ???..
?????? ?? ???
??: https://xkcd.com/303/
???? ??
??? ???? ¡ú ?????? ?? ?? ???? ???
CPU ?????? ?? ???
?? ?? ?????? ?? ??? ?? ??? ? ???? ??
?? ??? ?????? ??? ?? ??
???
??? ??? ?? ?? ?? ?concurrent_bounded_queue ??
? ???? ??? ??? ??? ??? ??
?? ???? ??? ??? ?? ??
????
???? ?? ???? ??: ?? X? ??? A? ??
?????? ??? B? ?? ??????
?? ??? ?? ??? ?? ? ??? ???? ???
????? ?
?? ??? ??: ??? ??? ???? ???? ?? ??? ??
??? ????? ?? ??? ??
???? 3. ????? ?????
?? ??? ????? ????? ????? ??? ??
??? ?? ??: 64BIT ONLY
?? 32???? ??? ?? ??
?????? 32??? ??? ? ???
"??? ??": 32?? ??? 64?? ??? ???? ??
??-?? ???? ?? ?? ?? ? ?? ?? ???
???? ??
?? ?? ?? ??? API??
????? ? ??? ???..
??? ??? ??? ? ???
Windows x64?? ?? ???? ??????..
???? ?? ???? ??? ?? ???? ???
?? ????? ?? ?? ??? ?? ???
??: You've Got Mail (1998), http://redd.it/32ojzg
?
??: You've Got Mail (1998), http://redd.it/32ojzg
?? ??????? ????? ??? ????? ??
WINDOWS X64 ?? ???
?? ??: rcx, rdx, r8, r9 + ??
?? ??, ??? ??? ??
max(4, ?? ??) * 8?? ?? ?? ??
??? ? ?? ??? ??? ?? ?? ?? ????!!
? ??? ????? ? ? ?? ???? ??
cf. SystemV x64 "Red zone"
?? ????.. (??)
?? ??, DLL ?? ??? ?? ?? ¡ú
MinHook ( )https://github.com/TsudaKageyu/minhook
?? ???? ???? ???? ?? ?? ????? ¡À 2GB
???? ???? ?? ?? ??? ?? ? ??
?? ?? ???? ?? ?? ??
?? ???? ?? ?? ???? ???? ???? ??
?? ??
namespace?Scaleform?{
????namespace?GFx?{
????????class?DetourFontData?:?public?FontData?{
????????public:
????????????void?DetourRead(/*?arguments?*/)?
}??}?}
void?Scaleform::GFx::DetourFontData::DetourRead(/*?...?*/)?{
????MemoryAllocationProfiler::TagScope(TEXT("ScaleformGFx/Font"),?[&]()?{
????????(this?>*Original_Scaleform_GFx_FontData_Read)(/*?...?*/)?
????})?
}
???? ?????? ?? ??
Fail fast - ?? ?? ?? ??? ?? ??
?? / ??? ??
? ???? ?? ??? ??
?? ????? ??
??? ?? ???? ??? ??? ?? ??
????? ????? ?? ??? ???
EOD

More Related Content

??? ??? ????2 ??? ??? ????? ??? ???