본문

[유머] Java와 C++의 메모리 관리 방식

일시 추천 조회 36210 댓글수 71


1

댓글 71
BEST
감히 인간주제에 메모리관리 따위를 위대하신 컴퓨터가 알아서 하게끔 한단말이냐 불경한 인간놈들
THEPEBBLE | (IP보기클릭)223.38.***.*** | 20.09.22 08:32
BEST
딱히? 수동 메모리 관리가 가져올수 있는 수많은 버그 생각하면 GC는 구현과 추상적인 레벨에만 집중하면 되서 편함.
말랑한불여우 | (IP보기클릭)203.230.***.*** | 20.09.22 08:34
BEST
차라리 c++이 낫지않나
츠쿠요미 시라베 | (IP보기클릭)211.36.***.*** | 20.09.22 08:32
BEST
스마트 포인터를 쓰세요
일립시S | (IP보기클릭)121.164.***.*** | 20.09.22 08:38
BEST
임베디드 시스템처럼 극한의 메모리 효율이 요구되는 곳은 C++이 좋긴 함
무한의 무르도즈노 | (IP보기클릭)175.209.***.*** | 20.09.22 08:42
BEST
운전자가 겁나 효율 좋게 기어변속 딱딱 잘 할줄 알면 수동변속기가 연비가 좋겠지만 안그러면 그냥 자동변속기가 나은거랑 비슷한 맥락임
카스테포 | (IP보기클릭)110.14.***.*** | 20.09.22 08:43
BEST
GC가 있어도 ㅂㅅ같이 짜면 메모리 누수나고 ㅈㄹ 나지만, 그따위로 만드는 인간이 C로 짜면 더 빨리 터진다
네크로노미콘속독대회 | (IP보기클릭)223.39.***.*** | 20.09.22 08:45
BEST
자바의 가비지 콜렉터가 잘 동작한다고????????
붕어엄마 | (IP보기클릭)118.35.***.*** | 20.09.22 08:46
BEST
뭐.. GC 성능이 좋아지기 보단 하드웨어적으로 풍족해진거 아닐까? 하드랑 메모리 용량이 흘러 넘치니까
배부르고등따숴 | (IP보기클릭)210.164.***.*** | 20.09.22 08:37
BEST
요즘 기기들 리소스가 커져서 문제가 부각되지 않는거지 기기 제조사들은 메모리 릭, 퍼포먼스 개선을 위해 네이티브 앱, 프레임워크 최적화 하느라 개발자들 피똥쌈
식신시츄 | (IP보기클릭)106.102.***.*** | 20.09.22 08:49
BEST

차라리 c++이 낫지않나

츠쿠요미 시라베 | (IP보기클릭)211.36.***.*** | 20.09.22 08:32
BEST
츠쿠요미 시라베

딱히? 수동 메모리 관리가 가져올수 있는 수많은 버그 생각하면 GC는 구현과 추상적인 레벨에만 집중하면 되서 편함.

말랑한불여우 | (IP보기클릭)203.230.***.*** | 20.09.22 08:34
츠쿠요미 시라베

요즘은 가비지 컬렉션 성능도 좋아져서 극한의 효율을 추구하지 않는 이상 대부분 자바가 낫지 않음?

킹룡 | (IP보기클릭)211.36.***.*** | 20.09.22 08:35
말랑한불여우

그런가? 내가 필요할때 반환 안되서 불편하다 들었는데 아닌가보네 하긴 요즘 램크기 크니까 크게 상관 없으려나

츠쿠요미 시라베 | (IP보기클릭)211.36.***.*** | 20.09.22 08:36
킹룡

ㅇㅇ 러스트 같이 수동적인 메모리 관리 추구하는 경우도 있지만(대신 메모리 접근 규칙이 빡셈) 요즘은 기본적으로 GC 달고 나오는 언어가 많지. 옛날처럼 컴 성능이 구린것도 아니니

말랑한불여우 | (IP보기클릭)203.230.***.*** | 20.09.22 08:36
킹룡

하긴 그렇겠네 램크기도 많이 커져서 크게 신경 안써줘도 되겠네

츠쿠요미 시라베 | (IP보기클릭)211.36.***.*** | 20.09.22 08:37
BEST
킹룡

뭐.. GC 성능이 좋아지기 보단 하드웨어적으로 풍족해진거 아닐까? 하드랑 메모리 용량이 흘러 넘치니까

배부르고등따숴 | (IP보기클릭)210.164.***.*** | 20.09.22 08:37
츠쿠요미 시라베

그래서ㅠ얫날겜들이라유요즘겜들 최적화수준이 달라졌나... 안쓰는 더미데이터도 오지게많고...

[삭제된 댓글의 댓글입니다.] | (IP보기클릭)223.62.***.*** | 20.09.22 08:42
BEST
츠쿠요미 시라베

운전자가 겁나 효율 좋게 기어변속 딱딱 잘 할줄 알면 수동변속기가 연비가 좋겠지만 안그러면 그냥 자동변속기가 나은거랑 비슷한 맥락임

카스테포 | (IP보기클릭)110.14.***.*** | 20.09.22 08:43
[삭제된 댓글의 댓글입니다.]

최적화 할 시간에 더 많은 컨텐츠, 더 많은 그래픽을 넣는게 더 이득이라

말랑한불여우 | (IP보기클릭)203.230.***.*** | 20.09.22 08:43
BEST
츠쿠요미 시라베

요즘 기기들 리소스가 커져서 문제가 부각되지 않는거지 기기 제조사들은 메모리 릭, 퍼포먼스 개선을 위해 네이티브 앱, 프레임워크 최적화 하느라 개발자들 피똥쌈

식신시츄 | (IP보기클릭)106.102.***.*** | 20.09.22 08:49
[삭제된 댓글의 댓글입니다.]
메가톤.맨

그건 너가 뭘 잘못쓰고 있던거 아닐까

정령오리 | (IP보기클릭)117.111.***.*** | 20.09.22 08:49
츠쿠요미 시라베

난 차라리 C++이 나음 편한건 자바가 편하겠지만 속도는 C++이 훨씬 빠른걸

코딩노예48 | (IP보기클릭)118.218.***.*** | 20.09.22 08:51
코딩노예48

제대로 관리만 된다면 아무래도 C보다 빠를수는 없지 걍 일장일단이 있는거같음 아무래도 요새는 메모리 사정이 좋다보니 관리가 편한 자바가 더 인기있지만 극한의 성능을 추구하는 분야는 C가 선호되는거지 뭐

아이마스 | (IP보기클릭)110.70.***.*** | 20.09.22 09:02
아이마스

게임 프로그래밍같은건 1프레임 1프레임이 소중하니까 아무래도 C++에 손이 가더라 C#기반인 유니티는 그래서 좀 졷같음

코딩노예48 | (IP보기클릭)118.218.***.*** | 20.09.22 09:03
코딩노예48

니가 c#특성을 잘 몰라서 그러는건 아니고? GC를 한번에 털어버리면 프레임저하 생기고 하지만, 프레임 나눠서 적당히 털게하면 프레임 저하는 거의 안일어난다. 게다가 이번에 버전 올라가면서 GC를 쪼개서 터는기능도 넣었다. 물론 극상의 최적화를 이룬 C++코드에 비할 순 없지만. 유니티가 줫 같을 정도로 구진 엔진은 아니라는거지.

앙증마 | (IP보기클릭)220.117.***.*** | 20.09.22 09:11
코딩노예48

그런 생각으로 나온 국산 게임 대부분이 c++이고 램누수 못잡고 빌빌거림 애초에 언어의 차이에서 오는 속도 차이는 pc나 모바일 게임 수준애선 진짜 하나도 의미 없음

루리웹-2919870210 | (IP보기클릭)117.111.***.*** | 20.09.22 09:38
루리웹-2919870210

cpp은 프로그램이 작거나 천재거나 아니면 진짜 장인 정신으로 한땀한땀 코딩할 거 아니면 안 쓰는 게 좋지... 솔직히 설계라는 거 자체가 너무 정신적 노가다야. 생산성 챙기자

くノ一 | (IP보기클릭)112.168.***.*** | 20.09.22 10:02
BEST

감히 인간주제에 메모리관리 따위를 위대하신 컴퓨터가 알아서 하게끔 한단말이냐 불경한 인간놈들

THEPEBBLE | (IP보기클릭)223.38.***.*** | 20.09.22 08:32

*물론 c++에도 자동 메모리 관리 라이브러리가 있음

일립시S | (IP보기클릭)121.164.***.*** | 20.09.22 08:32
일립시S

하지만 메모리 누수가 등장하면 어떨까...

이지금♡ | (IP보기클릭)210.94.***.*** | 20.09.22 08:34
이지금♡

??? 먼 소리여 메모리 누수는 수동으로 관리 할 때 더 나기 쉽지

일립시S | (IP보기클릭)121.164.***.*** | 20.09.22 08:36
일립시S

좀 다름 자바는 gc에 어느정도 쌓이면 프로그램 일시 중지하고 쭉 정리 C++은 소멸시 할당된 메모리 해제도 있고, 아예 메모리 관리자를 수동으로 구현해서 메모리 재사용도 가능

현실복귀불가 | (IP보기클릭)39.7.***.*** | 20.09.22 08:37
BEST
현실복귀불가

스마트 포인터를 쓰세요

일립시S | (IP보기클릭)121.164.***.*** | 20.09.22 08:38
일립시S

그거는 소멸시 자동 해제밖에 기능이 없음 파편화 대응을 못함

현실복귀불가 | (IP보기클릭)39.7.***.*** | 20.09.22 08:40
현실복귀불가

메모리 관리자는 메모리 해제를 프로그램 종료시 함

현실복귀불가 | (IP보기클릭)39.7.***.*** | 20.09.22 08:41
일립시S

그딴것도없는 c는 뭘해야하죠?

프로뻘짓러 | (IP보기클릭)223.39.***.*** | 20.09.22 08:46
프로뻘짓러

xxx:c는 팝콘이나 가져와라

에시비 | (IP보기클릭)183.104.***.*** | 20.09.22 08:53
현실복귀불가

그 gc 방식도 이제 먼 옛날 얘기에요. 최신 gc는 중지가 없습니다.

정예아쿠시즈교도 | (IP보기클릭)211.45.***.*** | 20.09.22 09:09

아~ 이런거 좋아 ㅋㅋㅋ

배부르고등따숴 | (IP보기클릭)210.164.***.*** | 20.09.22 08:34
BEST

임베디드 시스템처럼 극한의 메모리 효율이 요구되는 곳은 C++이 좋긴 함

무한의 무르도즈노 | (IP보기클릭)175.209.***.*** | 20.09.22 08:42
무한의 무르도즈노

Rust 쓰실래오?

말랑한불여우 | (IP보기클릭)203.230.***.*** | 20.09.22 08:42
무한의 무르도즈노

임베디드 시스템이면 C++보다는 C지...

루리웹-4826299564 | (IP보기클릭)59.9.***.*** | 20.09.22 09:05

스마트포인터:닝겐아 이젠 내가 할게.

국가공인행운아 | (IP보기클릭)106.101.***.*** | 20.09.22 08:43
BEST

GC가 있어도 ㅂㅅ같이 짜면 메모리 누수나고 ㅈㄹ 나지만, 그따위로 만드는 인간이 C로 짜면 더 빨리 터진다

네크로노미콘속독대회 | (IP보기클릭)223.39.***.*** | 20.09.22 08:45
네크로노미콘속독대회

ㅇㅇ. 이게 진리. 루프도 제대로 못 짜는 것들이 성능 올리겠다고 더 난리를 치죠. 이미 안드로이드 폰 게임들 자체가 자바인데 개소리임.

정예아쿠시즈교도 | (IP보기클릭)211.45.***.*** | 20.09.22 09:11
BEST

자바의 가비지 콜렉터가 잘 동작한다고????????

붕어엄마 | (IP보기클릭)118.35.***.*** | 20.09.22 08:46

https://github.com/microsoft/mimalloc C++ 성능 쥐어짜고 싶으면 요런거 써야 함

현실복귀불가 | (IP보기클릭)39.7.***.*** | 20.09.22 08:48

메모리 하니 생각 나는게 하나 있네.. 1안) String sTmp = ""; For (int i=0; i <= 10; i++) { sTemp = Convert.toString(i); } 2안) For (int i=0; i <= 10; i++) { String sTemp = Convert.toString(i); } 뭐가 더 좋은 방법일까?...

붕어엄마 | (IP보기클릭)118.35.***.*** | 20.09.22 08:51
붕어엄마

자바면 뭘 쓰던 그닥...

정령오리 | (IP보기클릭)117.111.***.*** | 20.09.22 08:53
붕어엄마

두번째껀 의미가 없는데..?

바베규먹자 | (IP보기클릭)182.218.***.*** | 20.09.22 08:55
붕어엄마

1번은 sTemp가 선언되있지 않으므로 2번! (장난)

KJ9 | (IP보기클릭)211.36.***.*** | 20.09.22 08:59
KJ9

똥싸러 가기 전에 적었더니 오타가 있네 ㅋㅋ. 부끄..

붕어엄마 | (IP보기클릭)118.35.***.*** | 20.09.22 09:06
붕어엄마

보통은 1안을 가겠지. 2안은 저게 스트링이 아닌 다른 주소형 타입을 썼다면야 생각해 볼 문제지만

O-techs | (IP보기클릭)211.36.***.*** | 20.09.22 09:07
정령오리

자바에 익숙한 사람들은 객체든 뭐든 모든 변수(객체)를 루프 안에서 선언 하는 경우가 있지.. 안드로이드 앱 만들때는,. 아래 방식이 효율이 좋지 않더라고.. 단말기의 한정적인 자원 내에서 루프 카운트에 따라 메모리가 확 치고 올라가더라고.

붕어엄마 | (IP보기클릭)118.35.***.*** | 20.09.22 09:08
O-techs

나도 1안을 선호함. 하지만 의외로 많은 사람들이 2번 방식을 사용해.. 특히 웹 개발자들..

붕어엄마 | (IP보기클릭)118.35.***.*** | 20.09.22 09:10
붕어엄마

나도 웹이지만 저렇게 해야 맞지. 정말 기한 급하지 않은 이상 저렇게 하면 안됨. 딱 보기에도 낭비스러운데.

O-techs | (IP보기클릭)211.36.***.*** | 20.09.22 09:13
붕어엄마

확장 for를 쓰면 해결되는 문제일 듯.

Viper. | (IP보기클릭)60.39.***.*** | 20.09.22 09:15
붕어엄마

협업하고 남이한거 유지보수해야하니 차라리 이해하기 쉬운 2안이 좋을 수 있음 엄청 막 반복문을 몇만 몇십만 돌릴게 아닌 이상 미비한 성능하락 (뭐 요즘 하드웨어 좋아져서 엄청 굴리지 않으면 차이도 없지만)은 감수하고 전역변수로 생길 문제점 컷트하고 지역변수로 유지보수할때 이해하기 쉽게 해주는게 낫단거지... 뭐 유의미할 정도로 퍼포먼스 차이나면 하드웨어를 늘리던가 최적화 들어가는건 당연한거구

루리웹-1249126789 | (IP보기클릭)118.220.***.*** | 20.09.22 09:27
O-techs

그렇게 생각하면 좋지,. 아래 방법으로 코딩하는 사람이 의외로 많더라고..

붕어엄마 | (IP보기클릭)118.35.***.*** | 20.09.22 09:29
붕어엄마

Convert.toString(i)가 하는 작업이 새로운 String 객체를 만드는것이긴 하지만 2안의 경우에는 sTemp라는 변수를 루프마다 재생성해야 한다. 10번 도는거야 밀리초단위에서는 이따위 성능차이는 없겠지만 천만번 정도만 돌려도 생각보다 유의미하게 차이남

wien | (IP보기클릭)182.226.***.*** | 20.09.22 09:30
루리웹-1249126789

전역변수는 아니지.. 전역이라면 접근한정자 혹은, 해당 프로젝트 프로그래밍 가이드에 나온 방법으로 전역 변수 명명 규칙으로 코딩하는게 기본이지.. 만약 저 String sTemp가 함수 내에 선언된 지역 변수라도,. 루프 안에 넣는건 좋지 않은 방법이라고 개인적으로 생각함. 그게 단순한 스트링 변수가 아닌, Class 객체를 생성한다면,. 한정적인 자원을 가진 스마트폰 같은데서는 문제가 되더라고..

붕어엄마 | (IP보기클릭)118.35.***.*** | 20.09.22 09:33
붕어엄마

그래서 결론은 Java GC 안 믿음.. 물론 이전보다 훨 좋아진건 알고 있음..

붕어엄마 | (IP보기클릭)118.35.***.*** | 20.09.22 09:34
붕어엄마

1안이지. c# 자바랑 비슷하니 2번 처럼 하면 매번 메모리를 할당해야 하는데 그 GC발생을 우짤라고.

앙증마 | (IP보기클릭)220.117.***.*** | 20.09.22 09:44
붕어엄마

C++ 기준으로 씀. 루프 내 변수를 만들면 스택포인터 깔짝대서 느리다는건 for (int i ...)하면 느리니까 int i 밖으로 빼야한다는거랑 동급의 소리임. 컴파일러가 그정도는 알아서 해줌. 2안은 오히려 명시적인 RVO의 기회를 제공해서 쓸데없는 메모리 카피 비용을 아낄수 있음. 그리고 변수의 스코프는 최대한 짧게 가져가야 코드의 locality와 portability가 증가하고 버그를 줄일 수 있음. 무조건 2안.

스트롭스트룹 | (IP보기클릭)219.250.***.*** | 20.09.22 10:04
붕어엄마

자바 컴파일러가 어떻게 동작하고, 또 얼마만큼의 성능차이가 나는지는 모르겠음. 하지만 1안과의 성능차가 2안의 유지보수성과 맞바꿀 가치가 있을 만큼은 아닌것같음.

스트롭스트룹 | (IP보기클릭)219.250.***.*** | 20.09.22 10:09
스트롭스트룹

이분 말씀이 맞아요. for문 안팎 정도의 변수 선언은 아무런 성능의 영향을 미치지 않습니다. 코드 상으로 유리해 보여도 컴파일러가 바꾸게 되는 코드는 최적화를 거치게 되어 있어서 같은 코드를 생성해 냅니다. 위 캡쳐는 Jetbrain IDEA 에서 Java 11로 간단한 코드를 컴파일한 파일을 다시 디컴파일해 열은 결과입니다. 밖으로 빠져 있어도 이 정도는 알아서 다시 집어넣어 줍니다.

정예아쿠시즈교도 | (IP보기클릭)211.45.***.*** | 20.09.22 15:27

Rust: ㅎㅇ

algorithm.h | (IP보기클릭)220.78.***.*** | 20.09.22 08:54

나는 오늘도 아침밥을 먹기 위해 숟가락의 인터페이스를 선언하고 숟가락Impl을 구현하고 먹다와 씹다와 목으로 넘긴 뒤 위액을 분비하는 코드를 짠 뒤 해당 코드를 엄마 아빠 동생의 형태로 다형성을 고려해 상속해줘야 했습니다. 아 생각해보니 부모 인스턴스를 자식 클래스로부터 상속받는 건 살짝 패륜 같아 보이니까 상속 관계를 바꾸도록 할께요 ㅎ

목잘린 살모사 | (IP보기클릭)112.149.***.*** | 20.09.22 08:55

오리지날 C : 하하 인간놈 메모리 관리하는 실력 좀 볼까?

득템만세 | (IP보기클릭)223.63.***.*** | 20.09.22 08:58

뭐만드냐에 따라 다른데 패키지 게임이라면 cpp 로 쥐어짤 필요가 있지

뒷산언저리 | (IP보기클릭)211.33.***.*** | 20.09.22 08:58

아무리 gc가 거둬준다고 해도 낭비는 줄여가야지. 괜히 이런저런 디자인 패턴이 나오는 게 아닌데

O-techs | (IP보기클릭)211.36.***.*** | 20.09.22 09:08

모바일 앱 만들다가도 갑사가 성능요구하면, 결국 네이티브로 갈아탈수밖에 없음. 결국은 용도에 따라..

가네즈온 | (IP보기클릭)106.251.***.*** | 20.09.22 09:12

정확하게 C++은 개발자가 안보는곳에 하나씩 쓰레기를 던져놓음.

다세포됨 | (IP보기클릭)223.38.***.*** | 20.09.22 09:18

성능으로 따지면야 당연히 C++이 빠르긴 하겠지만, 새로 나오는 언어들이나 요즘 뜨는 언어들 치고 GC 없는 언어가 없는 게 세태를 반영하고 있는 듯. 심지어 그런 언어들 중에 적지 않은 비율이 인터프리터 언어들이고.

Viper. | (IP보기클릭)60.39.***.*** | 20.09.22 09:22
】몽쉘【 | (IP보기클릭)223.62.***.*** | 20.09.22 09:25

내 방을 남이 치워준다 생각해봐. 내가 치우는게 낫지 않을까.

김모던 | (IP보기클릭)175.212.***.*** | 20.09.22 09:29

사람사는거랑 비슷하게 케바케에 정답은 없음.. 효율을 추구할때야 세세하게 따져가며 하지만, 반대로 그런거 하나하나 따지고 앉아있는게 비효율일때도 많음

Lmjfemc | (IP보기클릭)106.102.***.*** | 20.09.22 09:38

그래서 c#부터는 메모리 관리르 할 방법이 제한적이네 gc가 돌아갈 건덕지를 최대한 안주는 방향으로 코드를 짜기 시작함

루리웹-2919870210 | (IP보기클릭)117.111.***.*** | 20.09.22 09:42

프로그래머가 유능해도 사람이라 실수가 없진 않을 텐데..

Magincia | (IP보기클릭)124.54.***.*** | 20.09.22 09:54

둘다 할 수 있는 Go를 쓰세욧!!

스테리나이츠 | (IP보기클릭)211.36.***.*** | 20.09.22 10:02
댓글 71
1
위로가기
그냥남자사람 | 추천 177 | 조회 264208 | 날짜 2021.09.24
그을음 | 추천 59 | 조회 75571 | 날짜 2021.09.24
허무주의 | 추천 224 | 조회 191682 | 날짜 2021.09.24
되팔렘꼴통절단기 | 추천 20 | 조회 52259 | 날짜 2021.09.24
S.A.T.8 | 추천 8 | 조회 13001 | 날짜 2021.09.24
핵인싸 | 추천 920 | 조회 415991 | 날짜 2021.09.24
별빛 단풍잎 | 추천 5 | 조회 16830 | 날짜 2021.09.24
찐쿠아 | 추천 19 | 조회 28352 | 날짜 2021.09.24
Jade_2 | 추천 41 | 조회 181587 | 날짜 2021.09.24
닭도리탕 비싸 | 추천 26 | 조회 59263 | 날짜 2021.09.24
유우타군 | 추천 22 | 조회 63794 | 날짜 2021.09.24
가챠하느라밥이없어 | 추천 3 | 조회 5950 | 날짜 2021.09.24
니미핸드릭스 | 추천 28 | 조회 38202 | 날짜 2021.09.24
길가에e름없는꽃 | 추천 2 | 조회 8717 | 날짜 2021.09.24
루리웹-2122312666 | 추천 145 | 조회 70157 | 날짜 2021.09.24
긴박락 | 추천 3 | 조회 9180 | 날짜 2021.09.24
타카가키 카에데 | 추천 13 | 조회 17910 | 날짜 2021.09.24
꼬르륵꾸르륵 | 추천 3 | 조회 14354 | 날짜 2021.09.24
등대지기 공대생 | 추천 0 | 조회 9553 | 날짜 2021.09.24
no.777 | 추천 6 | 조회 14135 | 날짜 2021.09.24
루리웹-7309663092 | 추천 68 | 조회 61904 | 날짜 2021.09.24
이사령 | 추천 15 | 조회 20285 | 날짜 2021.09.24
달걀조아 | 추천 4 | 조회 7640 | 날짜 2021.09.24
| 추천 3 | 조회 6022 | 날짜 2021.09.24
MK.II | 추천 7 | 조회 12586 | 날짜 2021.09.24
고수달. | 추천 3 | 조회 12096 | 날짜 2021.09.24
『EDEN』 | 추천 3 | 조회 5207 | 날짜 2021.09.24
Julia Chang | 추천 78 | 조회 36077 | 날짜 2021.09.24

1 2 3 4 5

글쓰기
유머 BEST
힛갤
오른쪽 BEST