디시인사이드 갤러리

갤러리 이슈박스, 최근방문 갤러리

갤러리 본문 영역

스크립트언어 메모이제이션 테스트

aaa(125.186) 12-13 05:09:31
조회 183 추천 0 댓글 69
							


이건 그냥 일반 재귀

http://gall.dcinside.com/board/view/?id=programming&no=948995&s_type=search_name&s_keyword=aaa&page=1


소스코드


var memory = [];

function fibonacci(n){

  var result;    

if(n < 2){        

추천 비추천

0

고정닉 0

0

댓글 영역

전체 리플 69
등록순정렬 기준선택
  • aaa(125.186)
    12.13 05:20:44
  • aaa(125.186)

    아무래도 스코프안에서 변수선언된거랑 배열접근하는거떔에 느려진거같은데

    12.13 05:22:38
    • aaa(125.186)

      그거2개빼면 다른게없음

      12.13 05:22:51
    • EIKOU갤로그로 이동합니다.

      그럼 이미 계산해둔 건 재계산 안 하고 있는 건 맞음?

      12.13 05:24:47
    • EIKOU갤로그로 이동합니다.

      대체 배열을 어케 구현했길래 크기 30짜리 배열에서 저리 시간이 느려짐..

      12.13 05:25:18
    • aaa(125.186)

      디버그 해봐야되는데 시간이 너무 늦어서 내일할려고 실제로 재계산 안하고있는지는 확인못함

      12.13 05:29:25
  • codesafer갤로그로 이동합니다.

    내생각엔 스크립트 처리하는 구조가 기본적으로 너무 느려서 메모이제이션 스크립트가 분량이 늘어나니 그 코드 분량땜에 오버헤드가 생기는듯?

    12.13 05:33:25
  • codesafer갤로그로 이동합니다.

    메모이제이션 배열 1, 2 번째 요소에 0, 1 넣어주고 앞코드 날리고 돌려봐 얼마나 빨라지나

    12.13 05:33:55
    • aaa(125.186)

      디버그해보니까 함수콜한 횟수가 똑같음... 뭔가 잘못된거같음

      12.13 05:37:14
    • codesafer갤로그로 이동합니다.

      memoization 에 값 써넣기가 제대로 안되고 있거나 인스턴스가 여러개 생성되었거나 ㅋㅋ 아니면 의도치 않게 할당 해제되어버렸거나 등등

      12.13 05:38:40
  • codesafer갤로그로 이동합니다.

    https://www.ideone.com/RDZCxn 대충 배열 0, 1 초기화 하는 부분빼곤 이런식이 되겠지

    12.13 05:36:47
  • codesafer갤로그로 이동합니다.

    다 감안해도 너무 느린데 흠. 스크립트 처리부분이 궁금하긴 하다.

    12.13 05:39:32
    • aaa(125.186)

      내가 그래서 함수호출스택 최적화하는거 물어봣는데 아무것도 답변해주지못햇엉... ㅠ

      12.13 05:41:03
    • aaa(125.186)

      관련된 정보 얻을수있는데가 잇을깡?

      12.13 05:41:19
    • codesafer갤로그로 이동합니다.

      음 아무런 최적화 안해도 fib(50) 정도는 눈깜짝할새에 돌아야됨.

      12.13 05:41:38
    • codesafer갤로그로 이동합니다.

      개발 언어는 C?

      12.13 05:42:14
    • aaa(125.186)

      일단 문제는 if문에 포함된 jump부분쪽이나 != 이부분인거같음

      12.13 05:42:47
    • aaa(125.186)

      ㅇㅇ c언어로 짜고있음

      12.13 05:42:56
    • aaa(125.186)

      cpp

      12.13 05:43:03
    • codesafer갤로그로 이동합니다.

      응 비교문이 잘못되었을수도 있지 null 값이 잘못정의되어 있을수도 있고

      12.13 05:43:29
    • codesafer갤로그로 이동합니다.

      정상적으론 재귀를 돌더라도 그렇게 안느려야 될 상황인데 흠.

      12.13 05:44:25
    • codesafer갤로그로 이동합니다.

      오 c++ 이야? 훌륭하군 ㅋㅋ

      12.13 05:45:24
    • codesafer갤로그로 이동합니다.

      try catch 에 exception 은 발생시키지마 졸랭 느려짐.

      12.13 05:46:02
    • aaa(125.186)

      설계도 잘못된거같기도하고 callstack을 vector로 만들어서 그런거같기도하고...

      12.13 05:46:40
    • aaa(125.186)

      try catch 써본적도없음

      12.13 05:46:58
    • codesafer갤로그로 이동합니다.

      vector 를 첨에 좀 크게 잡아보지 그래 reserve 써서.

      12.13 05:47:35
  • EIKOU갤로그로 이동합니다.

    아무런 최적화 없이, 메모이제이션 없이 그냥 구현했을 때 C 기준 Fib(42) 1초 내로 돌고, 파이썬에선 Fib(30)이 1초 내로 돈다

    12.13 05:45:41
  • EIKOU갤로그로 이동합니다.

    일단 버그때문도 있겠고, 언어 자체가 느린 것도 맞는 듯

    12.13 05:46:17
    • aaa(125.186)

      함수호출방식이 문젠거같음 이거좀 공부하고싶은데 좋은자료 없을까?

      12.13 05:48:17
    • codesafer갤로그로 이동합니다.

      함수 호출구조야 calling convention 과 assembly call stack 을 참고하는게 젤 낫지

      12.13 05:48:54
    • codesafer갤로그로 이동합니다.

      호출때 마다 vector 를 만드는건 아니겠지

      12.13 05:49:43
    • codesafer갤로그로 이동합니다.

      함수 호출마다 vector 를 만들면 동적할당이 강제되는거라 거의 자살각이고, 전역 스택을 갖는게 유리하쥬

      12.13 05:50:47
    • aaa(125.186)

      그건 아니고 callstack에 pc저장하고 basestack에 현재스텍크기 저장해서 이후추가되는애들은 함수반환할때나 스코프끝나면 지워버리는식으로 구현햇는데

      12.13 05:51:36
    • codesafer갤로그로 이동합니다.

      왜 지웡

      12.13 05:52:07
    • codesafer갤로그로 이동합니다.

      메모리에 초기화 안한 지역변수 ( 스택 ) 이 가비지를 갖는 이유는 지우는 비용도 비싸서임

      12.13 05:52:34
    • codesafer갤로그로 이동합니다.

      포인터만 오락가락 하면서 덮어쓰도록 해야지

      12.13 05:52:52
    • codesafer갤로그로 이동합니다.

      그러니까 basestack 에 저장되었다는 현재 스택크기가 스택포인터가 되는셈이고 말야

      12.13 05:53:44
    • aaa(125.186)

      함수호출할때 내부에 선언된 변수들을 스택에 추가하는데 이걸 삭제안하면 계속 쌓이자나?

      12.13 05:55:23
    • codesafer갤로그로 이동합니다.

      callstack 과 parameter stack 이 분리된건 아니지?

      12.13 05:55:47
    • codesafer갤로그로 이동합니다.

      그래서 함수호출이 끝날때 SP 만 인자랑 되돌아갈 주소 만큼을 뺄셈 하는걸로 구현하잖아.

      12.13 05:56:35
    • codesafer갤로그로 이동합니다.

      스택을 비우는건 그냥 SP - 호출후 증가 크기 로 구현된단 말씀.

      12.13 05:57:16
    • aaa(125.186)

      parameter stack이 callstack에 포함되어있음

      12.13 05:57:27
    • codesafer갤로그로 이동합니다.

      ㅇㅇ 스택비우는건 SP -= 증가크기 처럼 뺄셈 하나로 구현하는거.

      12.13 05:58:50
    • aaa(125.186)

      함수호출할때 basestack에 스택갯수 - 파라메터갯수 를 넣어서 stack[basestack.back()] 이 첫번째 파라메터를 가르키게햇음

      12.13 05:58:50
    • aaa(125.186)

      스택이 vector인데 그거떔에 느린건가?

      12.13 05:59:19
  • codesafer갤로그로 이동합니다.

    stack 도 vector 고, basestack 도 독립 vector 인가?

    12.13 06:00:48
    • aaa(125.186)

      ㅇㅇ 맞음

      12.13 06:00:57
    • codesafer갤로그로 이동합니다.

      스택은 하나만 쓰고 레지스터 개념을 쓰지 그래.

      12.13 06:02:07
    • aaa(125.186)

      음 근데 opcode를 스택기반으로 짯는데 다시처음부터해야되자너..

      12.13 06:02:46
    • aaa(125.186)

      그리고 스크립트언어들 스택기반이 더빠르다고 들은거같은데

      12.13 06:03:12
    • codesafer갤로그로 이동합니다.

      https://asecurity.so/2015/09/레지스터와-어셈블리-그리고-스택/ 이런거 참고

      12.13 06:03:33
    • codesafer갤로그로 이동합니다.

      아하 오로지 스택 기반이군 플래시 스크립트처럼

      12.13 06:04:21
    • codesafer갤로그로 이동합니다.

      그래도 두개 운영하는건 좀 아닌것 같은데, 클러스터링이 안되잖어

      12.13 06:05:24
    • aaa(125.186)

      공부좀해야겟다 막연하게 만들려니까 어느순간 막히네

      12.13 06:07:32
    • aaa(125.186)

      목표가 메모리한번에 할당해서 gc없이 스크립트언어 만드는건데 언젠가 성공하겟지...

      12.13 06:08:31
    • codesafer갤로그로 이동합니다.

      나한테 코드 보내면 좀 봐줄수 있는데 메일로 보내든지 codesafer@gmail.com

      12.13 06:08:41
    • aaa(125.186)

      지금 시간늦어서 내일보내도 될까?

      12.13 06:10:34
    • aaa(125.186)

      졸려 ㅡㅡ..

      12.13 06:10:40
    • codesafer갤로그로 이동합니다.

      ㅇㅇ 나도 좀 천천히 볼께

      12.13 06:11:05
    • codesafer갤로그로 이동합니다.

      굿 잠~

      12.13 06:12:23

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 제목 글쓴이 날짜 조회 추천
설문 2018년 가장 기억에 남는 이슈는? 운영자 18/12/10 - -
공지 프로그래밍 갤러리 FAQ(자주 하는 질문) 읽어주세요.... 흐극흐극 [85] dlbo갤로그로 이동합니다. 12/01/31 70686 315
공지 프로그래밍과 관련된 사진과 내용이 있어야 합니다. [371] 운영자 05/06/21 681958 17
950305 취업해서 개발 시작 2년 후 얻은 거 ㅁㅌㅊ? ㅇㅇ(175.223) 12/13 3 0
950304 여기 애들이 아직도 모르는 것 같은데 W10updsrv7(110.70) 12/13 11 0
950303 딥러닝 전공자입니다 ㅇㅇ(39.7) 12/13 12 0
950302 32살에 신입으로 취업가능? [1] ㅇㅇ(124.57) 12/13 9 0
950301 형님들 OepnGL좀 도와주십쇼 ㅠㅠ ㅇㅇ(125.184) 12/13 3 0
950300 솔직히 대학안나온사람 티나지않냐? ㅎㅎ(175.113) 12/13 13 0
950299 아니 개발자 아니라고 힛자도 못 주냐 [2] 풀개미&#39;ㅅ&#3.갤로그로 이동합니다. 12/13 17 0
950298 딥러닝은 포기한다 W10updsrv7(175.223) 12/13 5 0
950297 아니 퍼셉트론도 이해 못한다고 딥러닝 못 가르쳐 주냐 [3] W10updsrv7(110.70) 12/13 8 0
950296 솔직히 나는 딥러닝배우게 글른거같다 W10updsrv7(175.223) 12/13 11 0
950295 또 내 짭 나타났냐 W10updsrv7(110.70) 12/13 12 0
950294 나는 저렇게 질문하니까 점진쨩이 개쌍욕처박던데 [1] 급진적자살(110.70) 12/13 18 0
950293 기학태야 컴공 고수 되려면 오컬트 공부해야 한다 'ㅅ' [3] 닐스보어갤로그로 이동합니다. 12/13 22 0
950292 나의 지능이 걱정돼 W10updsrv7(175.223) 12/13 11 0
950291 여기 애들이 아직도 이해 못한 것 같은데 W10updsrv7(110.70) 12/13 8 0
950290 아니 퍼셉트론도 이해 못한다고 딥러닝 못 가르쳐 주냐 W10updsrv7(110.70) 12/13 6 0
950289 아니 퍼셉트론도 이해 못한다고 딥러닝 못 가르쳐 주냐 W10updsrv7(110.70) 12/13 4 0
950288 솔직히 컴퓨터 오래공부하다보면 전문성 많이 생기지않냐? [1] ㅎㅎ(175.113) 12/13 25 0
950287 싸피 수업중 절반이 코테 ps 준비라고함 [2] 메루룽갤로그로 이동합니다. 12/13 31 0
950286 이번에는 확실히 해야겠다 [1] W10updsrv7(110.70) 12/13 20 0
950285 아니 퍼셉트론도 이해 못한다고 딥러닝 못 가르쳐 주냐 [6] W10updsrv7(110.70) 12/13 27 0
950284 캔버스 애니메이션 같은거 하고싶은데 [3] ㅇㅇ(59.15) 12/13 19 0
950283 패트리넷은 모든 상황을 모델링할 수 있다. bluepick(61.254) 12/13 22 0
950282 참고로 나 산스크리트 배우고 있는거 구라 아님 [1] ㅇㅇ(111.87) 12/13 22 0
950281 퍼셉트론 이 영상보면 이해된다 [1] 급진적자살(110.70) 12/13 16 0
950279 그런데 내 지능 걱정하지 말자 W10updsrv7(110.70) 12/13 16 0
950278 동컴vs홍컴vs숭컴vs에리카소프트vs항공소프트vs경북글로벌솦 ㅇㅇ(223.38) 12/13 8 0
950277 너희들도 여기 야갤처럼 쓰라고 안 했냐 [1] W10updsrv7(110.70) 12/13 23 0
950276 싸피 고졸은 안받아줌 ㅇㅇ(175.223) 12/13 20 0
950275 컴파일러수업에서 스크립트언어 다들 만들어봄? ㅇㅇ(221.153) 12/13 17 0
950274 아니근데 머리가 어느수준이면 퍼셉트론이 이해가안가냐 ? [2] ㅇㅇ(59.24) 12/13 36 0
950273 아니 퍼셉트론도 이해 못한다고 딥러닝 못 가르쳐 주냐 W10updsrv7(110.70) 12/13 5 0
950272 아니 퍼셉트론도 이해 못한다고 딥러닝 못 가르쳐 주냐 W10updsrv7(110.70) 12/13 6 0
950271 도배하는 새끼 = 통암기 [2] ㅇㅇ(110.70) 12/13 26 0
950270 아니 퍼셉트론도 이해 못한다고 딥러닝 못 가르쳐 주냐 W10updsrv7(110.70) 12/13 8 0
950269 뭔 사피관련 선동과 날조가 난무하냐 ㅇㅇ(121.163) 12/13 18 0
950268 포밤아 ㅇㅇ(175.223) 12/13 16 0
950267 도배그만하고 내글이나 답변달도록 하자 [4] CreeJee(유동근)갤로그로 이동합니다. 12/13 29 0
950266 내년 코테 박터지겠네 ㄷㄷㄷㄷㄷ 합격컷ㅋㅋㅋ [1] ㅇㅇ(222.119) 12/13 40 0
950265 아니 퍼셉트론도 이해 못한다고 딥러닝 못 가르쳐 주냐 W10updsrv7(110.70) 12/13 5 0
950264 솔직히 전화기도 비전공자도 취업가능하지않냐? [1] ㅠㅠㅠ(175.113) 12/13 16 0
950263 아니 퍼셉트론도 이해 못한다고 딥러닝 못 가르쳐 주냐 W10updsrv7(110.70) 12/13 6 0
950261 아니 퍼셉트론도 이해 못한다고 딥러닝 못 가르쳐 주냐 W10updsrv7(110.70) 12/13 6 0
950260 플로우차트 병1신같은거 bluepick(61.254) 12/13 19 0
950259 아니 퍼셉트론도 이해 못한다고 딥러닝 못 가르쳐 주냐 W10updsrv7(110.70) 12/13 6 0
950258 아니 퍼셉트론도 이해 못한다고 딥러닝 못 가르쳐 주냐 W10updsrv7(110.70) 12/13 7 0
950256 아니 퍼셉트론도 이해 못한다고 딥러닝 못 가르쳐 주냐 W10updsrv7(110.70) 12/13 8 0
950255 삼성 익스퍼트 아카데미에서 제공하는 인강 들을만하냐? [8] ㅇㅇ(121.167) 12/13 53 0
갤러리 내부 검색
전체게시물 정렬 옵션

오른쪽 컨텐츠 영역

EDNPlus
NEW[힛갤] 스압) 얼떨결에 겜회사 차리고 6년동안 인생 닷맛쓴맛 본 생존기.ssul
NEW[힛갤] 삼촌과 고양이 - 1, 2