<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="http://valley.egloos.com/rss/style/style.xsl" type="text/xsl" media="screen"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
	<channel>
		<title>이글루스 'heap' 태그 최근글</title>
		<link>http://valley.egloos.com/tag/heap</link>
		<description>heap</description>
		<language>ko</language>
		<pubDate>Fri, 11 Nov 2011 00:10:30 +0900</pubDate>
		<generator>Egloos</generator>
		<item>
	<title><![CDATA[[Android]User Libraries를 추가해서 빌드할 경우 주의사항.]]></title>
	<link>http://gsstudio.egloos.com/4155491</link>
	<guid>http://gsstudio.egloos.com/4155491</guid>
	<description>
	<![CDATA[ 
  지난 번에 native app 개발 시에 빌드가 되지 않는 문제를 이야기한 적이 있습니다.  원인은 java build path에 추가한 풀소스의 framework jar파일이   app이 빌드될때 함께 빌드되면서 이클립스의 heap memory 영역을 넘어서 사용하다가 뻗어버렸습니다.   해결책은 간단합니다.   ============================================================================== User library를 생성할때 밑에 보면 체크박스가 하나 있습니다.   System library(added to the boot class path) 라고 적혀있구요.  체크박스를 체크하고 라이브러리를 삽입하면 더이상 user library를 함께 	]]>
	</description>
	<pubDate>Fri, 11 Nov 2011 00:10:30 +0900</pubDate>
	<dc:creator><![CDATA[ GS studio]]></dc:creator>
</item>
<item>
	<title><![CDATA[k's tistory 소재] heap 을 이용한 검색..]]></title>
	<link>http://killofki.egloos.com/5552557</link>
	<guid>http://killofki.egloos.com/5552557</guid>
	<description>
	<![CDATA[ 
0) root 에서 뿌리 전체(?)를 검색하는 형태가 될 것 같다는 예상이 들어서 &quot;실패예시&quot;로 적기 위한 것..이라 하고 싶다.  1) heap 구조만 보면 분명 체계적이긴 하지만, 검색용으로 구조를 만든 것이 아니라는 단점은 숨기기 힘들 것 같다.  smallLet killofki@.	]]>
	</description>
	<pubDate>Fri, 15 Jul 2011 15:30:02 +0900</pubDate>
	<dc:creator><![CDATA[killofki's PageDown....]]></dc:creator>
</item>
<item>
	<title><![CDATA[k's tistory 소재] heap 을 이용한 나름(?) 정밀도 덧셈]]></title>
	<link>http://killofki.egloos.com/5552553</link>
	<guid>http://killofki.egloos.com/5552553</guid>
	<description>
	<![CDATA[ 
0) heap 이 가지고 있는 힘(?)이랄까..  최소값이나 최대값을 우선순위에 두고 가장 빠르게(?) 값을 내주는 형태라서..  ... 그건 그렇고..  1) 합산의 정밀도(?)가 높은 값을 가지려 한다는 것은 로그값을 이용한 덧셈에서 차이가 날 것 같다는 생각에  2) 소수점밑 한자리를 한계값으로 정하고 덧셈을 해보면 그 차이가 쉽게 날 거라는 생각이 들었다.  3) a+b (*참고* a &amp;gt; b &amp;gt; 0 ) =exp log a + b = exp log a(1+b/a) = exp ( log a + log (1+b/a) )  4) 원래는 float 를 표현하는 비트값을 직접 분석해서 표현하고 싶었지만,  체화한 부분이 아니라서..  5) 그럼, 이런 식은 어떨 때(?) 쓸까...라는 질문(?)이 나	]]>
	</description>
	<pubDate>Fri, 15 Jul 2011 15:27:08 +0900</pubDate>
	<dc:creator><![CDATA[killofki's PageDown....]]></dc:creator>
</item>
<item>
	<title><![CDATA[(II-c) The Heap (힙)]]></title>
	<link>http://sharku.egloos.com/340341</link>
	<guid>http://sharku.egloos.com/340341</guid>
	<description>
	<![CDATA[ 
힙을 단순하게 정리하는 것과 같은 문제는 플래그들이 활성화 되었을 때 초기의 힙이 초기화 되어진다는 것이 문제입니다. 그리고 감지가 가능한 몇 개의 아티팩트들을 남기게 된다. (특별하게, 힙의 끝에서 definite 값과 possible 값이 됩니다.)HEAP_TAIL_CHECKING_ENABLED 플래그는 항상 할당된 블록의 끝에서 연속된 값 “0xABABABAB“을 두 번 표시하게 합니다.HEAP_FREE_CHECKING_ENABLED 플래그는 slack 공간에서 다음 블록 까지 채우기 위해 추가적인 바이트가 필요하다면 연속된 값 “0xFEEEFEEE”(또는 일부)을 표시 합니다.  예제 코드는 다음과 같습니다.mov eax, &amp;lt;heap ptr&amp;gt;;get unused_bytesmovzx ecx,	]]>
	</description>
	<pubDate>Mon, 04 Apr 2011 22:39:03 +0900</pubDate>
	<dc:creator><![CDATA[스토리가 있는 리버싱]]></dc:creator>
</item>
<item>
	<title><![CDATA[[메모리 할당 - HeapAlloc vs. LocalAlloc]]]></title>
	<link>http://moai82.egloos.com/3978540</link>
	<guid>http://moai82.egloos.com/3978540</guid>
	<description>
	<![CDATA[ 
Windows 프로그래밍을 하다보면 memory allcoation 을 할 때 일반적으로 malloc 을 많이 쓴다.malloc 이야 워낙 대중적(?) 인 allocation 함수인데, system programming 을 하다 보면 좀 더 효율적인 할당을 위해 HeapAlloc 이라는 것을 사용한다. HeapAlloc 이란 말 그대로 Heap 에서 allocation 을 받는 것인데, 이 때에 아무런 Heap 영역에서 받는 것이 아니다.HeapCreate 라는 함수를 통해서, 현재 사용할 Heap 영역을 규정한다. 이 때에 Heap handle 값을 받게 되는데 이 handle 값을 이용해 HeapAlloc 이란 함수를 이용하면, 자신이 규정한 (private heap) 영역에서 memory 를 할당 받게	]]>
	</description>
	<pubDate>Mon, 21 Feb 2011 10:10:32 +0900</pubDate>
	<dc:creator><![CDATA[moai82]]></dc:creator>
</item>
<item>
	<title><![CDATA[메모리 컨트롤]]></title>
	<link>http://dakuo.egloos.com/1143714</link>
	<guid>http://dakuo.egloos.com/1143714</guid>
	<description>
	<![CDATA[ 
메모리 상태 :   페이지의 개수 = 가상 메모리의 크기 / 페이지 하나당 크기  페이지 개수는 가상 메모리의 크기에 비례하며(가상 메모리는 몇 비트 환경인지에 비례 (ex. 32비트 4GB)),  모든 페이지는 Reserve, Commit, Free 세가지 중 하나의 상태를 지닌다.  Commit : 물리 메모리에 할당된 상태  Reserve : Free 와 Commit 의 중간상태이다. 해당 번지에 대해 예약을 한다.               다른 메모리 함수가 물리 메모리에 해당 번지에 할당하지 못하도록 한다.               하지만 물리 메모리의 소비는 발생하지 않는다.                  Free : 물리 메모리 할당이 이뤄지지 않은 상태   메모리 할당의 시작점과 단위 확인 :	]]>
	</description>
	<pubDate>Sun, 28 Nov 2010 07:54:31 +0900</pubDate>
	<dc:creator><![CDATA[dakuo]]></dc:creator>
</item>
<item>
	<title><![CDATA[sort] heap...의 원점기준에 대해...]]></title>
	<link>http://killofki.egloos.com/5375477</link>
	<guid>http://killofki.egloos.com/5375477</guid>
	<description>
	<![CDATA[ 
heap...  sort 를 위해 태어났다...라기보다는 우선순위를 먼저 뽑아내기 위한... 그런 method 형 tree 이다...라고 적어는 보는데,  top point 의 여부와 크기만 지정되면 node 가 자동구성이 되는 트리형태...라는 설명이라면 맞을지...  ...  개인적인 생각이지만, cache 를 운영하기 위해 heap 을 많이 쓸 것으로 보인다. (sort 는 그 다음 문제...)  ...  뭐... 그딴(?) 문제는 일단 접어두고,  지금 적어둘 부분은 0 부터 시작하느냐, 1 부터 시작하느냐...의 문제가 있다.  0 ( 1 ( 3 4 ) 2 ( 5 6 ) )  1 ( 2 ( 4 5 ) 3 ( 6 7 ) )  실제 array 는  0 1 2 3 4 5 6  1 2 3 4 5 6 7  	]]>
	</description>
	<pubDate>Mon, 09 Aug 2010 20:50:31 +0900</pubDate>
	<dc:creator><![CDATA[killofki's PageDown....]]></dc:creator>
</item>
<item>
	<title><![CDATA[Introduction - Memory]]></title>
	<link>http://illnessm.egloos.com/1368942</link>
	<guid>http://illnessm.egloos.com/1368942</guid>
	<description>
	<![CDATA[ 
Effective C++의 Introduction을 이해하기 위해서 알아야 하는 내용입니다.   높은 번지(High address)힙(Heap)Heap동적 메모리 할당을 위한 곳↓미사용 공간(Available)  ↓스택(stack)Stack지역변수와 매개 변수가 저장된 곳, 이 영역에 할당된 변수는 함수 호출이 완료되면 사라진다는 특징을 가진다. 즉 자신의 유효범위가 끝나면 사라진다.(destructor가 호출된다)↓전역변수(Global Variable)Data Section - Initialized data segment - Uninitialized data segment = BSS(Block Started by Symbol)↓리터럴(literal) 상수들이 저장된다낮은 번지(Low address)기계어 	]]>
	</description>
	<pubDate>Fri, 23 Jul 2010 11:51:05 +0900</pubDate>
	<dc:creator><![CDATA[예수쟁이]]></dc:creator>
</item>
<item>
	<title><![CDATA[힙 조각화와 LFH(Low Fragmentation Heap)]]></title>
	<link>http://byung.egloos.com/5347066</link>
	<guid>http://byung.egloos.com/5347066</guid>
	<description>
	<![CDATA[ 
애플리케이션에서의 메모리 이슈는 항상 쉽게 다뤄지지 않는 어려운 문제이다. 애플리케이션의 컴파일 이후 테스트 시에, 또는 초기 운영 시에는 좀처럼 나타나지 않지만, 사용자의 증가나 어느 정도 안정되게 운영된다고 생각하는 시점에 불현듯 나타나기 때문에 문제 재현도 쉽기 않고 해결 역시 쉽지 않다. 그 중에 힙 메모리의 조각화에 따른 문제는 상당히 골치 아픈 문제이다. 힙 메모리의 조각화는 일반적으로 메모리 할당과 해제에 코딩상 문제가 없음에도 불구하고 사용자의 패턴에 의해서 발생할 수 있는 현상이다. 일반적으로 메모리 관리자는 메모리의 해제 리스트를 관리하고 있다. 메모리를 할당하려고 할 때, 메모리 해제 리스트를 검색하여 재 할당 가능한 연속된 메모리 영역이 존재한다면, 해당 이미 해제된 메모리를 재사용하는	]]>
	</description>
	<pubDate>Tue, 29 Jun 2010 10:54:41 +0900</pubDate>
	<dc:creator><![CDATA[기억속으로 날다]]></dc:creator>
</item>
<item>
	<title><![CDATA[Java - Java Error : java.lang.OutOfMemoryError: Java heap space]]></title>
	<link>http://kwaknu.egloos.com/5213665</link>
	<guid>http://kwaknu.egloos.com/5213665</guid>
	<description>
	<![CDATA[ 
java.lang.OutOfMemoryError: Java heap space  에러내용은 자바의힙 메모리 공간이 부족해서 생기는 에러로써 이를  해결하기 위해서는  힙 사용 메모리 공간을 변경(확보)시켜 주어야 한다. 이클립스를 사용하고 있다면아래와 같이 해결할 수 있다, 빈번히 생기는 에러는 아니지만 간혹 힙 메모리의 오류가 발생하니 참고하도록 하자 Properties - Run/Debug Settings - Arguments tab - VM arguments 로 이동하여 아래의 그림과 같이 설정한다 .  [-Xms256m, -Xmx1024m] 로 -Xms 는 최소, -Xmx 는 최대로 메모리로, 사용자의 편의에 맞게 적당히 지정한다추가사항 (02/March/2009): 간혹 온라인 게임 프리서버를 돌리	]]>
	</description>
	<pubDate>Fri, 05 Mar 2010 09:42:14 +0900</pubDate>
	<dc:creator><![CDATA[伏地不動]]></dc:creator>
</item>
<item>
	<title><![CDATA[Linked List와 Queue]]></title>
	<link>http://recipes.egloos.com/5071672</link>
	<guid>http://recipes.egloos.com/5071672</guid>
	<description>
	<![CDATA[ 
<img 
				src="http://thumb.egloos.net/100x76/http://pds10.egloos.com/pds/200908/06/90/c0098890_4a7ad2ed6c1b2.jpg"  
				alt="Linked List와 Queue" 
				width="100px"  
				height="76pxpx"
				align="left"
				style="border:1px solid #DDDDDD;margin:0 10px 10px 0px;"
				/> 우리 Stack과 Heap등을 살펴 보았듯이, Inter Process Communication을 제대로 하려면, Queue라는 자료구조의 개념을 잘 알아야 해요. 일단 Queue는 Stack과 달리, 먼저 넣은 놈이 꺼내면 먼저 나와요. Stack은 나중에 넣은 넘이 꺼내면 먼저 나오죠. 그래서 Queue라는 건 줄세우기인데요,  보통 FIFO라고 불려요. Software에서 사용하는 Data들은 대부분 이런 Queue라는 걸 이용해서 처리를 한답니다. 먼저 들어온 넘을 먼저 처리하는 게 순리상 정상인 게죠. Stack이 이상한 거에요. ㅋ 보통 Queue라는 건 대기행렬을 의미하는데요, 줄을 세우는 거라고 보시면 되요. 일종의 Buffer라는 의미인데요, 처리 할 녀석들을 줄 세워 놓고서 하나씩 꺼내서 	]]>
	</description>
	<pubDate>Thu, 06 Aug 2009 21:57:19 +0900</pubDate>
	<dc:creator><![CDATA[임베디드 시스템 개발자 되기 강좌]]></dc:creator>
</item>
<item>
	<title><![CDATA[STACK, HEAP에 관한 소고. ]]></title>
	<link>http://recipes.egloos.com/5057426</link>
	<guid>http://recipes.egloos.com/5057426</guid>
	<description>
	<![CDATA[ 
<img 
				src="http://thumb.egloos.net/100x76/http://pds15.egloos.com/pds/200907/25/90/c0098890_4a6b19ee72901.jpg"  
				alt="STACK, HEAP에 관한 소고. " 
				width="100px"  
				height="76pxpx"
				align="left"
				style="border:1px solid #DDDDDD;margin:0 10px 10px 0px;"
				/>  - STACK은 history기능을 가지고 있고, Heap은 메모리를 꿔줄 수 있습니다. stack이나 heap은 모두 전역변수 배열로 선언되어 있으며, 어떤 전략으로 사용할 것인가에 따라 stack이나 heap으로 나뉘게 되지요.  -   STACK과 HEAP에 관한 작은 생각들을 늘어놓도록 하겠습니다. STACK은 무엇인가? - 시작부터 Stack이 무엇인지 늘어놓으려고 하니, 참으로 쑥스럽습니다. 저에게 Stack이라는 것은 참으로 미지의 무엇이었기 도 했는데, 조금 알았다 싶어 다시 잘 생각해 보면, 여전히 미지의 것이기는 마찬가지 입니다. 참으로 곤란하기 짝이 없습니다. 그저 Data를 건초더미 쌓듯이 쌓아 올리면 되리라는 근본적인 Idea에는 변함이 없습니다만, 막상 함수가 호출될 때, 어떻게 	]]>
	</description>
	<pubDate>Sat, 25 Jul 2009 23:43:51 +0900</pubDate>
	<dc:creator><![CDATA[임베디드 시스템 개발자 되기 강좌]]></dc:creator>
</item>
<item>
	<title><![CDATA[HEAP CORRUPTION DETECTED 에러]]></title>
	<link>http://javawork.egloos.com/2244196</link>
	<guid>http://javawork.egloos.com/2244196</guid>
	<description>
	<![CDATA[ 
<img 
				src="http://thumb.egloos.net/100x76/http://pds10.egloos.com/pds/200902/24/14/d0043314_49a38a3ab05a7_t.png"  
				alt="HEAP CORRUPTION DETECTED 에러" 
				width="100px"  
				height="76pxpx"
				align="left"
				style="border:1px solid #DDDDDD;margin:0 10px 10px 0px;"
				/> 보통 아래와 같은 코드에서 HEAP CORRUPTION DETECTED 에러가 납니다.    struct TestStruct  {      int serial;      short level;      double postion;  };  typedef std::vector&amp;lt;TestStruct&amp;gt; TestVector;  TestVector test_vec;  TestStruct tt;  test_vec.push_back(tt);  memset(&amp;amp;test_vec[0], 0, sizeof(TestVector));  자기가 소유하지 않은 메모리, 즉 배열의 경계를 넘어서 초기화한다거나 하면 나중에 해당 객체가 해제될때 이 에러가 발생하는데, 최근에 특이한 환경에서 이 에러를 경험했습니다.    T	]]>
	</description>
	<pubDate>Tue, 24 Feb 2009 14:54:55 +0900</pubDate>
	<dc:creator><![CDATA[flexible gameserver]]></dc:creator>
</item>
<item>
	<title><![CDATA[[Troubleshooting Tool] Gflags.exe]]></title>
	<link>http://byung.egloos.com/4752325</link>
	<guid>http://byung.egloos.com/4752325</guid>
	<description>
	<![CDATA[ 
<img 
				src="http://thumb.egloos.net/76x100/http://pds12.egloos.com/pds/200811/26/93/c0057693_492d1024a4377_t.jpg"  
				alt="[Troubleshooting Tool] Gflags.exe" 
				width="76px"  
				height="100pxpx"
				align="left"
				style="border:1px solid #DDDDDD;margin:0 10px 10px 0px;"
				/> Gflags.exe는 Windows System Diagnostics 를 위해 debugging tools for windows에서 제공하는 Tool이다. 상위의 그림만 봐서는 이해하기 어려울 수도 있지만, Application에 대한 System registry의 일부 설정을 통하여 메모리누수나 handle 누수를 tracking 하거나 pageheap을 enable 하여 Heap corruption을 Troubleshooting 할 수 있다.  메모리누수에 대한 Gflags 설정. 메모리누수를 Check하기 위해서는 gflags.exe와 UMDH(User Mode Dump Heap)이라는 Tool도 필요하다. UMDH 역시 Debugging tools for Windows에 포함되어 있는 Tool이다. 	]]>
	</description>
	<pubDate>Wed, 26 Nov 2008 18:01:40 +0900</pubDate>
	<dc:creator><![CDATA[기억속으로 날다(Walking on Memory)]]></dc:creator>
</item>
<item>
	<title><![CDATA[JVM Heap 사이즈의 한계 넘기: Weka 3.5.x + BEA JRockIt JVM SE 5]]></title>
	<link>http://lunapapa.egloos.com/1978529</link>
	<guid>http://lunapapa.egloos.com/1978529</guid>
	<description>
	<![CDATA[ 
<img 
				src="http://thumb.egloos.net/100x76/http://pds8.egloos.com/pds/200807/15/28/d0051528_487c913914ab1_t.png"  
				alt="JVM Heap 사이즈의 한계 넘기: Weka 3.5.x + B.." 
				width="100px"  
				height="76pxpx"
				align="left"
				style="border:1px solid #DDDDDD;margin:0 10px 10px 0px;"
				/> Weka (http://www.cs.waikato.ac.nz/~ml/weka/)를 쓰다보면 Heap 사이즈의 한계에 부딛혀 JVM에서 OOM을 내고 Weka가 쫑나버리는 사태를 경험할 때가 있습니다. 원래, Win32에서의 JVM Heap 사이즈의 한계는 대략 1.4GB 정도인데.. 이게 모자랄 수 있습니다;; (덜덜)    이것 때문에 64bit로 갈아타기는 귀찮고, 그렇다고 솔라리스를 쓰자니 이것도 64bit로 갈아타는 만큼 귀찮은 일이라, 이를 해결하기 위해 좀 찾아봤습니다.       BEA RockIt JVM을 쓰면 연속적인(continuous) 메모리 공간을 확보하지 않아도 큰 Heap 공간을 잡을 수 있다... 라고 되어있길래, 일단 무턱대고 BEA RockIt JVM 1.5를 구하기 시작.  	]]>
	</description>
	<pubDate>Tue, 15 Jul 2008 21:02:33 +0900</pubDate>
	<dc:creator><![CDATA[불친절한 룬아의 횡설수설]]></dc:creator>
</item>
	</channel>
</rss>

