Editing Gooo with Gooo - kimjooyoon/meta-ontology-go GitHub Wiki

Gooo둜 Gooo μ†ŒμŠ€ λ°”κΎΈκΈ°

μ΄λ²ˆμ—λŠ” μ†ŒμŠ€λ₯Ό 쑰금 κ³ μΉ˜λŠ” 도ꡬλ₯Ό Gooo둜 λ§Œλ“€μ—ˆμŠ΅λ‹ˆλ‹€. 원문이 λ§žλŠ”μ§€ ν™•μΈν•˜κ³ , μ§€μ •ν•œ 쑰각을 κ΅μ²΄ν•˜κ³ , 바뀐 길이λ₯Ό μ λŠ” μ„Έ λ‹¨κ³„μž…λ‹ˆλ‹€. μ•žμ—μ„œ λ‚΄λ¦° 결정이 λ‹€μŒ λ‹¨κ³„μ˜ λ™μž‘μ— 영ν–₯을 μ€λ‹ˆλ‹€.

예λ₯Ό λ“€μ–΄ 짧은 ν•¨μˆ˜μ˜ input + 1을 input * 2둜 λ°”κΏ‰λ‹ˆλ‹€. ν…μŠ€νŠΈλ₯Ό λ°˜ν™˜ν•˜λŠ” λ°μ„œ 끝내지 μ•Šκ³ , λ°˜ν™˜λœ Gooo μ†ŒμŠ€λ₯Ό μ»΄νŒŒμΌν•΄ -5Β·0Β·9λ₯Ό λ„£μ—ˆμŠ΅λ‹ˆλ‹€. κ²°κ³ΌλŠ” -10Β·0Β·18μ΄μ—ˆκ³  κ³ μ • μˆœμ„œμ™€ λͺ¨λΈ κ²½λ‘œμ—μ„œ 각각 3/3을 ν™•μΈν–ˆμŠ΅λ‹ˆλ‹€.

λͺ¨λΈμ€ 어디에 μ“°μ˜€λ‚˜

μ†ŒμŠ€μ— μžˆλŠ” μ„Έ μžλ¦¬μ—λŠ” 각각 두 개의 후보식이 μžˆμŠ΅λ‹ˆλ‹€. μ΅œλŒ€ μ—¬λŸ μ‘°ν•©μž…λ‹ˆλ‹€. κΈ°μ‘΄ 자체 μ†Œν˜• λͺ¨λΈμ΄ μ‹œλ„ν•  μˆœμ„œλ₯Ό μ œμ•ˆν•˜κ³ , μ»΄νŒŒμΌλŸ¬κ°€ μ„ μ–Έλœ μ—¬λŸ 예제둜 쑰합을 κ²€μ‚¬ν•©λ‹ˆλ‹€. λͺ¨λΈμ„ λΉΌλ©΄ μ •ν•΄μ§„ μˆœμ„œλ‘œ μ§„ν–‰ν•©λ‹ˆλ‹€.

이번 λͺ¨λΈμ€ 파일λͺ… μ²˜λ¦¬Β·λ‚˜λˆ—μ…ˆΒ·μž¬μ‹œλ„ ν”„λ‘œκ·Έλž¨μœΌλ‘œ ν•™μŠ΅ν•œ κ°€μ€‘μΉ˜λ₯Ό κ·ΈλŒ€λ‘œ μΌμŠ΅λ‹ˆλ‹€. μ†ŒμŠ€ μˆ˜μ • ν”„λ‘œκ·Έλž¨μ„ μƒˆλ‘œ ν•™μŠ΅μ‹œν‚€μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€.

κ΄€μΈ‘ κ³ μ • μˆœμ„œ κΈ°μ‘΄ κ·Έλž˜ν”„ λͺ¨λΈ
첫 ν›„λ³΄μ˜ 쑰립 사둀 2/8 2/8
쑰립 μ™„λ£ŒκΉŒμ§€ μ‹œλ„ 8회 4회
μ™„μ„±λœ μ½”λ“œμ˜ 별도 μž…λ ₯ 542/542 542/542
μ €μž₯ν•œ μ½”λ“œμ˜ μž¬μ‹€ν–‰ 542/542 542/542
쑰립 ν•œ 번의 λͺ¨λΈ 호좜 0회 1회
μ‹€ν–‰Β·μ €μž₯ μž¬μ‹€ν–‰μ˜ λͺ¨λΈ 호좜 0회 0회

ν•œκΈ€, 이λͺ¨μ§€, μ€„λ°”κΏˆ, 반볡 λ¬Έμžμ—΄, 였래된 원문, κ·ΈλŒ€λ‘œ 둬야 ν•˜λŠ” 경우, 길이 μ œν•œμ„ λ„£μ—ˆμŠ΅λ‹ˆλ‹€. 별도 μž…λ ₯ 542κ°œλŠ” 쑰립 예제 8κ°œμ™€ κ²ΉμΉ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. μƒˆ ν”„λ‘œκ·Έλž¨ ν•˜λ‚˜λ₯Ό μ—¬λŸ¬ μž…λ ₯μ—μ„œ ν™•μΈν•œ κ²°κ³Όμž…λ‹ˆλ‹€.

덜 μ™„μ„±λœ μƒνƒœμ—μ„œλ„ λ³Ό 수 μžˆλŠ” 것

λͺ¨λΈμ΄ 처음 κ³ λ₯Έ 쑰합은 μˆ˜μ • μ—¬λΆ€λ₯Ό false둜 λ‘μ—ˆμŠ΅λ‹ˆλ‹€. ꡐ체식과 μ΅œμ’… 길이식을 잘 골라도 μ‹€μ œ ꡐ체 뢄기에 λ“€μ–΄κ°€μ§€ λͺ»ν–ˆμŠ΅λ‹ˆλ‹€. 두 번만 μ‹œλ„ν•˜λ©΄ λͺ¨λΈμ΄ 맞힌 쑰립 ν•„λ“œλŠ” 9/24μ˜€κ³  κ³ μ • μˆœμ„œλŠ” 15/24μ˜€μŠ΅λ‹ˆλ‹€. λ„€ λ²ˆκΉŒμ§€ ν—ˆμš©ν•˜λ©΄ λͺ¨λΈμ΄ 24/24, κ³ μ • μˆœμ„œκ°€ 21/24κ°€ λμŠ΅λ‹ˆλ‹€.

μ™„μ„± μ „ν›„λ₯Ό ν•¨κ»˜ λ‚¨κΈ°λ‹ˆ, μ–΄λŠ 단계가 λ‹€λ₯Έ λ‹¨κ³„μ˜ 효과λ₯Ό λ§‰λŠ”μ§€ λ³Ό 수 μžˆμ—ˆμŠ΅λ‹ˆλ‹€. λ‹€μŒ μ—°κ΅¬μ—μ„œλŠ” μ•žμ„  선택을 λ’€μ˜ νŒλ‹¨μ— μ „λ‹¬ν•˜κ±°λ‚˜ μ‘°ν•© 전체λ₯Ό ν‰κ°€ν•˜λŠ” 방식을 비ꡐ할 수 μžˆμŠ΅λ‹ˆλ‹€. 이번 ν”„λ‘œκ·Έλž¨μ€ 이미 κ²°κ³Όλ₯Ό κ΄€μΈ‘ν–ˆμœΌλ―€λ‘œ, λ‹€μŒ ν•™μŠ΅μ˜ ν‰κ°€μ—λŠ” μƒˆ ν”„λ‘œκ·Έλž¨κ³Ό μž…λ ₯을 λ”°λ‘œ κ³ μ •ν•΄μ•Ό ν•©λ‹ˆλ‹€.

542개 쀑 321κ°œλŠ” μ›λž˜ λ‚΄μš©μ„ κ·ΈλŒ€λ‘œ λ‘λŠ” 게 μ •λ‹΅μž…λ‹ˆλ‹€. 아무것도 κ³ μΉ˜μ§€ μ•ŠλŠ” ν”„λ‘œκ·Έλž¨λ„ 321/542λ₯Ό μ–»μŠ΅λ‹ˆλ‹€. κ·Έλž˜μ„œ 전체 사둀 μˆ˜μ™€ ν•¨κ»˜ μ‹€μ œ ꡐ체 사둀, ν•„λ“œλ³„ μΆ©μ‘± 수, μ‹œλ„ 횟수λ₯Ό ν•¨κ»˜ κΈ°λ‘ν–ˆμŠ΅λ‹ˆλ‹€.

μ§€κΈˆ μ“Έ 수 μžˆλŠ” λ²”μœ„

workbench splice λͺ…λ ΉμœΌλ‘œ μ΅œλŒ€ 1,024 UTF-8 λ°”μ΄νŠΈμ˜ ν…μŠ€νŠΈλ₯Ό μˆ˜μ •ν•©λ‹ˆλ‹€. 파일 연결은 Goκ°€ λ§‘κ³  μˆ˜μ • νŒλ‹¨μ€ Gooo μ†ŒμŠ€μ— μžˆμŠ΅λ‹ˆλ‹€. κ²°κ³ΌλŠ” μƒˆ 폴더에 μ €μž₯ν•©λ‹ˆλ‹€. μ‹€μ œ μš”μ²­μ€ κΈ°λŒ€ μ •λ‹΅ 없이 μ‹€ν–‰ν•  수 있고, 같은 쑰립 기둝으둜 μƒˆ μž…λ ₯을 λͺ¨λΈ 호좜 없이 μ²˜λ¦¬ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

μ—°κ²° 쀑에 컴파일러의 λΆˆμΌμΉ˜λ„ μ°Ύμ•˜μŠ΅λ‹ˆλ‹€. λ³Έλ¬Έ μƒμ„±μ—μ„œ λ˜λŠ” len이 νŒ¨ν‚€μ§€ μ‹€ν–‰μ—μ„œλŠ” μ„ μ–Έν•˜μ§€ μ•Šμ€ ν•¨μˆ˜λ‘œ μ²˜λ¦¬λμŠ΅λ‹ˆλ‹€. 컴파일러 μˆ˜μ • PR 1378κ³Ό λ„κ΅¬Β·μ‹€ν—˜ PR 27을 κ³΅κ°œν–ˆμŠ΅λ‹ˆλ‹€. μ›λž˜ 0.6.9-dev 배포 νŒŒμΌμ€ 이 νŒ¨ν‚€μ§€ μˆ˜μ •μ΄ ν•„μš”ν•©λ‹ˆλ‹€. ν˜„μž¬ μ„€μΉ˜ 파일과 μƒˆ 배포의 μ™„λ£Œ μ—¬λΆ€λŠ” ν˜„μž¬ μƒνƒœμ—μ„œ λ”°λ‘œ μ•ˆλ‚΄ν•©λ‹ˆλ‹€.

λͺ¨λΈ νŒλ‹¨ ꡬ간은 λ„€ κ΄€μΈ‘μ—μ„œ 6297Β΅s, μ€€λΉ„λŠ” 0.210.54msμ˜€μŠ΅λ‹ˆλ‹€. ν…μ„œλŠ” 2,096λ°”μ΄νŠΈμ΄κ³  메타데이터 λ“± μΆ”κ°€ λ©”λͺ¨λ¦¬κ°€ μžˆμŠ΅λ‹ˆλ‹€. μ΄λ²ˆμ—λŠ” 호슀트 CPU μ¦κ°€λŸ‰κ³Ό 전체 ν”„λ‘œμ„ΈμŠ€ λ©”λͺ¨λ¦¬λ₯Ό μΈ‘μ •ν•˜μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€. 후보λ₯Ό 덜 μ‹œλ„ν•œ 결과와 전체 μ‹€ν–‰ μ†λ„λŠ” ꡬ뢄해 λ΄…λ‹ˆλ‹€.

곡개 μ‹€ν–‰ μ•ˆλ‚΄ Β· κ³„νšΒ·λΆ€λΆ„ 결과·원본 μ‹€ν–‰ 기둝.