| 1 | == 1차 == |
| 2 | {{{ |
| 3 | 장재훈({재훈, 뮤스군} Alicization) 님의 말 : |
| 4 | 1. 버퍼링 |
| 5 | 2. 다중 아웃풋 [될거 같고] |
| 6 | 3. 캐릭터 인코딩 |
| 7 | 4. 로깅 시간 [당연한거고] |
| 8 | 5. 프리픽스 [오류 타입] |
| 9 | 6. 스레드 세이프 [될거 같고] |
| 10 | ....3번이 귀찮을거 같고 |
| 11 | 1번은 당장 떠오르는게 없네요 음 |
| 12 | 혹시 |
| 13 | stdout 처럼 |
| 14 | 버퍼에 있다가 |
| 15 | 훅 쓰는 |
| 16 | 그런걸 말씀하시는건가요? |
| 17 | |
| 18 | 김락현([락현]) 님의 말 : |
| 19 | ㅇ |
| 20 | 걍 내부 버퍼를 가지고 있는 거지. |
| 21 | api셋팅으로 할수 있고.. |
| 22 | 1m를 가지고 있으면... |
| 23 | 계속 쌓다가 1m가 다 차면 파일에 write. |
| 24 | 파일 io를 줄이니 성능을 높일 수 있지 |
| 25 | |
| 26 | 장재훈({재훈, 뮤스군} Alicization) 님의 말 : |
| 27 | 음 |
| 28 | 사이즈 체크를 |
| 29 | 어떻게 하느냐가.. |
| 30 | 관건이네요 음 |
| 31 | |
| 32 | 김락현([락현]) 님의 말 : |
| 33 | 다만 로그의 특성상 아까 말했듯이 api를 call하는 시점에 반드시 기록할수도 있는 거고. |
| 34 | |
| 35 | 장재훈({재훈, 뮤스군} Alicization) 님의 말 : |
| 36 | 허흠 |
| 37 | 이런 경우가 좀 고민스러운데 |
| 38 | stl::vector 같은거 쓰면 메모리가 알아서 관리되니 좋지만.. |
| 39 | 직접 만들면 |
| 40 | 용량이 얼마나 더 들어올지 알 수가 없으니 |
| 41 | 만들기가 좀 골아프더라구요 |
| 42 | |
| 43 | 김락현([락현]) 님의 말 : |
| 44 | 용량이 얼마나 더 들어올지? |
| 45 | |
| 46 | 장재훈({재훈, 뮤스군} Alicization) 님의 말 : |
| 47 | 음 |
| 48 | 그러니까 |
| 49 | 로그 버퍼를 예로 들면 |
| 50 | 1M 가 이상되면 쓸건데. |
| 51 | 1mb 이상 을 받아야 하니 |
| 52 | |
| 53 | 김락현([락현]) 님의 말 : |
| 54 | 초기 입력값으로 받는 거지~ |
| 55 | |
| 56 | 장재훈({재훈, 뮤스군} Alicization) 님의 말 : |
| 57 | 1.1mb 를 버퍼로 잡아놨는데 |
| 58 | 음? |
| 59 | 음 |
| 60 | 몇 이상되면 써라 이런거요? |
| 61 | |
| 62 | 김락현([락현]) 님의 말 : |
| 63 | ㅇㅇ |
| 64 | |
| 65 | 장재훈({재훈, 뮤스군} Alicization) 님의 말 : |
| 66 | 네 그렇게 해도 고민인게; |
| 67 | 여유 공간을 |
| 68 | 얼마나 잡아야 하는건지; |
| 69 | |
| 70 | 김락현([락현]) 님의 말 : |
| 71 | 음? |
| 72 | |
| 73 | 장재훈({재훈, 뮤스군} Alicization) 님의 말 : |
| 74 | 1MB 이상되면 써라 |
| 75 | |
| 76 | 김락현([락현]) 님의 말 : |
| 77 | 1M를 크리고 잡았다면 |
| 78 | |
| 79 | 장재훈({재훈, 뮤스군} Alicization) 님의 말 : |
| 80 | 라고 설정을 해놨는데 |
| 81 | 1MB 넘게.... |
| 82 | 아 |
| 83 | |
| 84 | 김락현([락현]) 님의 말 : |
| 85 | 1M가 넘어가는 시점에 쉬프트 시켜주면 되는 거얌 |
| 86 | |
| 87 | 장재훈({재훈, 뮤스군} Alicization) 님의 말 : |
| 88 | 음 |
| 89 | 들어온거 포함해서 1메가 넘으면 지금 들어온거 받지말고, 파일에 쓰고나서 들어온걸 버퍼에 푸쉬하는 |
| 90 | 아...이렇게 해도 되겠구나 |
| 91 | |
| 92 | 김락현([락현]) 님의 말 : |
| 93 | 음 그런거지 |
| 94 | 편하게.. 1000이라는 사이즈가 버퍼크기라면.. |
| 95 | 보통 입력으로 10~30으로 온다 치고( 물론 한계는 없고) |
| 96 | 현재 버퍼의 크기가 998이고 |
| 97 | 10이 들어오면 |
| 98 | 998+2 만큼 기록하고 |
| 99 | 8이 다시 버퍼의 젤 처음이 되는 거야 |
| 100 | 내가 생각한건 이런 식임.. -_- |
| 101 | |
| 102 | 장재훈({재훈, 뮤스군} Alicization) 님의 말 : |
| 103 | 음 |
| 104 | length를 가지고 있으면 |
| 105 | out (buffer + length, formatted-string, arg1, ...) |
| 106 | 이런식으로 해도 될건 같은데 |
| 107 | 근데 10이 들어오면 왜 +2 인가요? |
| 108 | |
| 109 | 김락현([락현]) 님의 말 : |
| 110 | 버퍼크기가 1000이고 현재 998만큼 기록되어 있으니 |
| 111 | 블록 단위로 기록하기 위해서 +2만큼 더 기록해 주는 거지... |
| 112 | 보통 버퍼링을 할때는.... 하드의 클러스터 단위인 1024KB(또는 그의 배수나 약수)를 기준으로 버퍼 크기를 잡고.. |
| 113 | block단위로 i/o를 발생시켜 주는게 최고의 성능을 낼수 있어. |
| 114 | |
| 115 | 장재훈({재훈, 뮤스군} Alicization) 님의 말 : |
| 116 | 아 현재 버퍼의 크기가 998 이고 |
| 117 | 이게 |
| 118 | 지금 남은 버퍼가 998 이라는 말씀이신줄 ㅋㅋ |
| 119 | 지금 버퍼에 들어있는 데이터의 크기가 998이라는 말씀이셨군요 |
| 120 | |
| 121 | 김락현([락현]) 님의 말 : |
| 122 | 아 998만큼 차 있다고~ |
| 123 | ㅇㅇ |
| 124 | |
| 125 | 장재훈({재훈, 뮤스군} Alicization) 님의 말 : |
| 126 | 음음 적어놔야지 |
| 127 | |
| 128 | 김락현([락현]) 님의 말 : |
| 129 | 음음? 별거 아닌건데~ -_- |
| 130 | |
| 131 | 장재훈({재훈, 뮤스군} Alicization) 님의 말 : |
| 132 | 근데 |
| 133 | 1024kb 가 |
| 134 | 클러스터 단위예요? |
| 135 | 1메가네; |
| 136 | 클러스터가 꽤 크네요; |
| 137 | |
| 138 | 김락현([락현]) 님의 말 : |
| 139 | 더 작지~ |
| 140 | |
| 141 | 장재훈({재훈, 뮤스군} Alicization) 님의 말 : |
| 142 | ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ |
| 143 | |
| 144 | 김락현([락현]) 님의 말 : |
| 145 | 256이여던가.. |
| 146 | 까먹었어 |
| 147 | |
| 148 | 장재훈({재훈, 뮤스군} Alicization) 님의 말 : |
| 149 | 2 진수의 배우소 |
| 150 | 배수로 |
| 151 | 만들라는 |
| 152 | 말씀이신듯 |
| 153 | 2^8 이상의 배수로 만들면 |
| 154 | 되겠네요 으헤헤 |
| 155 | |
| 156 | 김락현([락현]) 님의 말 : |
| 157 | ㅇㅇ |
| 158 | |
| 159 | 장재훈({재훈, 뮤스군} Alicization) 님의 말 : |
| 160 | 캐릭터 인코딩은.. |
| 161 | 음 |
| 162 | |
| 163 | 김락현([락현]) 님의 말 : |
| 164 | 파일 등록 정보 볼때 파일 사이즈랑 디스크 할당 크기를 보면 알수 있는데 |
| 165 | |
| 166 | 장재훈({재훈, 뮤스군} Alicization) 님의 말 : |
| 167 | 찾아야겠네요 |
| 168 | |
| 169 | 김락현([락현]) 님의 말 : |
| 170 | 4k네 |
| 171 | |
| 172 | 장재훈({재훈, 뮤스군} Alicization) 님의 말 : |
| 173 | 근데 캐릭터 인코딩하면 |
| 174 | 버퍼 동적할당으로 새로 잡고 |
| 175 | 인코딩바꾸고 |
| 176 | 쓰고 하면 |
| 177 | 속도는 당연히 |
| 178 | |
| 179 | 김락현([락현]) 님의 말 : |
| 180 | 응 귀찮겠다 |
| 181 | |
| 182 | 장재훈({재훈, 뮤스군} Alicization) 님의 말 : |
| 183 | 배이상 느려지겠죠 음 |
| 184 | |
| 185 | 김락현([락현]) 님의 말 : |
| 186 | 하지말자 |
| 187 | 걍 multibyte로 입력. |
| 188 | char 버퍼로 입력받고.. |
| 189 | 사이즈랑 메모리 받아서 |
| 190 | 사이즈만큼 메모리 기록. |
| 191 | 쿨하고 좋다. |
| 192 | }}} |
| 193 | |
| 194 | == 2차 == |
| 195 | {{{ |
| 196 | 김락현([락현]) 님의 말 : |
| 197 | 뭐가 문제임? |
| 198 | |
| 199 | 장재훈({재훈, 뮤스군} Alicization) 님의 말 : |
| 200 | 아 |
| 201 | 그 |
| 202 | 말씀해주셨떤거 중에.. |
| 203 | 파일 시스템 블록 단위로 쓰는게 |
| 204 | 퍼포먼스가 가장 좋다고 하셨잖아요 |
| 205 | |
| 206 | 김락현([락현]) 님의 말 : |
| 207 | ㅇㅇ 그렇쥐. |
| 208 | |
| 209 | 장재훈({재훈, 뮤스군} Alicization) 님의 말 : |
| 210 | 근데 사용자가 버퍼 사이즈를 파일 시스템 블록 배수로 안맞춰서 넣는 경우는 |
| 211 | 사용자 버퍼 사이즈만큼 찼을 때 쓰나요 |
| 212 | 클러스터 배수가 되면 쓰나요?? |
| 213 | |
| 214 | 김락현([락현]) 님의 말 : |
| 215 | 사용자의 버퍼사이즈~ |
| 216 | |
| 217 | 장재훈({재훈, 뮤스군} Alicization) 님의 말 : |
| 218 | 음 |
| 219 | 그렇게 되면 |
| 220 | 파일 시스템 블록사이즈는 |
| 221 | 구현 물 상에서는 |
| 222 | 고려하지 않게 되는건데.. |
| 223 | |
| 224 | 김락현([락현]) 님의 말 : |
| 225 | 응 맞어. |
| 226 | |
| 227 | 장재훈({재훈, 뮤스군} Alicization) 님의 말 : |
| 228 | 으앜 |
| 229 | |
| 230 | 김락현([락현]) 님의 말 : |
| 231 | 쓰는 사람이 잘 써야해 |
| 232 | |
| 233 | 장재훈({재훈, 뮤스군} Alicization) 님의 말 : |
| 234 | ㅋㅋ |
| 235 | ㅋㅋㅋㅋㅋㅋㅋㅋ |
| 236 | |
| 237 | 김락현([락현]) 님의 말 : |
| 238 | 이건 뭐랄까 개발의 정책에 관련된 문제인데... |
| 239 | 라이브러리를 개발하는 거자나? |
| 240 | |
| 241 | 장재훈({재훈, 뮤스군} Alicization) 님의 말 : |
| 242 | 넹 |
| 243 | |
| 244 | 김락현([락현]) 님의 말 : |
| 245 | 물론 내가 만들어 내가 쓰는 거긴 하지만.. |
| 246 | |
| 247 | 장재훈({재훈, 뮤스군} Alicization) 님의 말 : |
| 248 | 라이브러리는 쓰는 놈이 어느정도 커버 쳐가면서 써야하는건 맞는거 같은데.. |
| 249 | |
| 250 | 김락현([락현]) 님의 말 : |
| 251 | 기본적으로는 내가 모르는 사람이 쓴다고 가정했을때... |
| 252 | |
| 253 | 장재훈({재훈, 뮤스군} Alicization) 님의 말 : |
| 254 | 넴 |
| 255 | |
| 256 | 김락현([락현]) 님의 말 : |
| 257 | 분명히 파라메터로 값을 명시하고 있으니.. |
| 258 | 라이브러리는 시킨대로 하는게 맞지 않을까? |
| 259 | |
| 260 | 장재훈({재훈, 뮤스군} Alicization) 님의 말 : |
| 261 | 흠 퍼포먼스는 올리고 싶은데 |
| 262 | 그렇다고 로그 모듈에서 파일 시스템 블록 사이즈를 알 수 있는 인터페이스를 뚫는 것도 좀.. |
| 263 | 이상한거 같고 |
| 264 | ㅋㅋ |
| 265 | |
| 266 | 김락현([락현]) 님의 말 : |
| 267 | 물론 ceiling( 니가 인풋한 사이즈, 2^n)의 형태로 버퍼링 하는 것도 가능하지. |
| 268 | |
| 269 | 장재훈({재훈, 뮤스군} Alicization) 님의 말 : |
| 270 | ?? |
| 271 | 그게 머에요?? |
| 272 | |
| 273 | 김락현([락현]) 님의 말 : |
| 274 | 하지만 나의 관점은... 개발의 복잡도(스팩을 비롯하여.. )를 너무 높히는 것은 정신건강에 매우 안좋음.. |
| 275 | |
| 276 | 장재훈({재훈, 뮤스군} Alicization) 님의 말 : |
| 277 | 음 |
| 278 | 첨엔 |
| 279 | 사용자가 지정한 버퍼 이내에서 |
| 280 | 가장 큰 |
| 281 | 블록 사이즈의 배수 |
| 282 | 만큼 쓰려고 했는데 |
| 283 | 그것도 좀... |
| 284 | 이상한거 같고 해서 |
| 285 | |
| 286 | 김락현([락현]) 님의 말 : |
| 287 | ㅇㅇ |
| 288 | 만약 그렇게 하려면... 그렇게 할지 말지 여부를 별도 비트 플래그 옵션등으로 받아야 하지 않을까 싶어. |
| 289 | 내 기준엔. |
| 290 | 졸라 복잡하자나? |
| 291 | 안그래도 머리 아픈 세상인데. |
| 292 | |
| 293 | 장재훈({재훈, 뮤스군} Alicization) 님의 말 : |
| 294 | 음 |
| 295 | 그럼 |
| 296 | 비트플래그로 |
| 297 | 만들 때 |
| 298 | 버퍼를 |
| 299 | 내가 지정한 값 이내에서 가장 큰 버퍼 사이즈를 찾으세요 |
| 300 | 라고 |
| 301 | ? |
| 302 | 하면되나요 |
| 303 | 내가 제시한 값 이내에서 가장 큰 블록 사이즈의 배수를 버퍼로 잡아라 |
| 304 | |
| 305 | 김락현([락현]) 님의 말 : |
| 306 | 응 그렇게 하는게 스팩상으로는 명확하나.. |
| 307 | |
| 308 | 장재훈({재훈, 뮤스군} Alicization) 님의 말 : |
| 309 | 라고.. |
| 310 | |
| 311 | 김락현([락현]) 님의 말 : |
| 312 | 나같음 안해 |
| 313 | |
| 314 | 장재훈({재훈, 뮤스군} Alicization) 님의 말 : |
| 315 | ㅋㅋㅋ |
| 316 | 구현은 |
| 317 | |
| 318 | 김락현([락현]) 님의 말 : |
| 319 | 걍 입력한 값으로 버퍼링 하지. |
| 320 | |
| 321 | 장재훈({재훈, 뮤스군} Alicization) 님의 말 : |
| 322 | 안어려운데 |
| 323 | 이상하네요 뭔가 |
| 324 | 음 |
| 325 | 결국 |
| 326 | 퍼포먼스 따윈 |
| 327 | |
| 328 | 김락현([락현]) 님의 말 : |
| 329 | 니가 버퍼링에 관한 지식이 있는 개발자야.. |
| 330 | |
| 331 | 장재훈({재훈, 뮤스군} Alicization) 님의 말 : |
| 332 | 밥말아 먹는건가 |
| 333 | |
| 334 | 김락현([락현]) 님의 말 : |
| 335 | 당연히 그렇게 사이즈를 주지 않겠니? |
| 336 | |
| 337 | 장재훈({재훈, 뮤스군} Alicization) 님의 말 : |
| 338 | .....그..그렇겠죠? |
| 339 | 음 |
| 340 | |
| 341 | 김락현([락현]) 님의 말 : |
| 342 | 나 같으면 차라리 default사이즈로 해라라는 옵션을 줘서.. |
| 343 | 그럴때만 개발자 기준의 최선의 사이즈를 구하겠어. |
| 344 | |
| 345 | 장재훈({재훈, 뮤스군} Alicization) 님의 말 : |
| 346 | 디폴트도 생각해 봤는데요 |
| 347 | 시스템 스펙이나 여유 리소스가 얼마나 있는지 모르는 상태에서 |
| 348 | 내 맘대로 몇배나 잡을지도 참 |
| 349 | 기준이 애매한거 같아서.. |
| 350 | |
| 351 | 김락현([락현]) 님의 말 : |
| 352 | 128K / |
| 353 | |
| 354 | 장재훈({재훈, 뮤스군} Alicization) 님의 말 : |
| 355 | 아 |
| 356 | 음 |
| 357 | |
| 358 | 김락현([락현]) 님의 말 : |
| 359 | 아니면 256K정도? |
| 360 | |
| 361 | 장재훈({재훈, 뮤스군} Alicization) 님의 말 : |
| 362 | 머드라 |
| 363 | win32가 |
| 364 | cluster default size가 |
| 365 | 4096 바이트였나 |
| 366 | 그렇던데 |
| 367 | 4k |
| 368 | |
| 369 | 김락현([락현]) 님의 말 : |
| 370 | 응 |
| 371 | 버퍼사이즈 mod 4k가 0인... |
| 372 | 버퍼사이즈를 구하면 되자나 |
| 373 | 그리고 당연히 클수록 좋은 거구... |
| 374 | |
| 375 | 장재훈({재훈, 뮤스군} Alicization) 님의 말 : |
| 376 | 그렇죠.. |
| 377 | 음 |
| 378 | 128k 면 |
| 379 | 128 * 1024 |
| 380 | 12만인데 대충 |
| 381 | 12만 글자가 차야 |
| 382 | 쓰는거네요 |
| 383 | 그렇게 보니 디게 많아보이네 |
| 384 | |
| 385 | 김락현([락현]) 님의 말 : |
| 386 | 로그의 특성상.. 적절한 flush가 필요하다고 생각해야 하는게 중론이야.. |
| 387 | 사용자가 이건 실시간의 필요성으 없다 판단되는 로그면 1M이상 막 넣는거고.. |
| 388 | 이건 졸라 바로 바로 봐야 한다 그러면 0으로 셋팅해서 바로 write하는 거고.. |
| 389 | 그건 api를 사용하는 사람의 판단에 맡겨야지. |
| 390 | 물론 내가 만들고 내가 쓰긴 하지만. ㅋ |
| 391 | |
| 392 | 장재훈({재훈, 뮤스군} Alicization) 님의 말 : |
| 393 | 아 0으로 셋팅하면 바로 군요;;ㅣ |
| 394 | 음 |
| 395 | |
| 396 | 김락현([락현]) 님의 말 : |
| 397 | 그래서 lib제작이 어려운 거임 |
| 398 | |
| 399 | 장재훈({재훈, 뮤스군} Alicization) 님의 말 : |
| 400 | 그렇군 |
| 401 | |
| 402 | 김락현([락현]) 님의 말 : |
| 403 | 개발이 어려운게 아니고.. |
| 404 | 요구사항이 다르거든. |
| 405 | |
| 406 | 장재훈({재훈, 뮤스군} Alicization) 님의 말 : |
| 407 | 고려사항이 많네요 |
| 408 | |
| 409 | 김락현([락현]) 님의 말 : |
| 410 | ㅇㅇ |
| 411 | 개발자 중심으로 생각하면 안되... |
| 412 | 개발자 중심으로 생각하면 퍼포먼스에 대한 욕심이 생겨서.. |
| 413 | |
| 414 | 장재훈({재훈, 뮤스군} Alicization) 님의 말 : |
| 415 | default 사이즈로 설정하는 플래그를 |
| 416 | 만들어야겠군요 |
| 417 | multi threading 플래그만 했었는데 흠 |
| 418 | |
| 419 | 김락현([락현]) 님의 말 : |
| 420 | 나라면.. |
| 421 | 버퍼 사이즈입력받는 변수를 singed로 해서.. |
| 422 | -1을 입력하면 default 사이즈를 넣게.. |
| 423 | 아니다. CPP을 사용하며.. |
| 424 | default변수를 지정하게 하는 방법도 좋겠네 |
| 425 | 두개 다하면 되겠다. |
| 426 | protytype에.. |
| 427 | |
| 428 | 장재훈({재훈, 뮤스군} Alicization) 님의 말 : |
| 429 | 근데 |
| 430 | c++을 ㅏㅅ용하면 |
| 431 | |
| 432 | 김락현([락현]) 님의 말 : |
| 433 | 예를 들어.. LogInitialize( 블라블라, long lLogBufferSize = DEFAULT_LOG_SIZE) |
| 434 | |
| 435 | 장재훈({재훈, 뮤스군} Alicization) 님의 말 : |
| 436 | 라이브러로 못쓰지 않ㄴ.. |
| 437 | |
| 438 | 김락현([락현]) 님의 말 : |
| 439 | 정도? |
| 440 | |
| 441 | 장재훈({재훈, 뮤스군} Alicization) 님의 말 : |
| 442 | 아 |
| 443 | cpp로 해놓고.. |
| 444 | 어차피 함수 타입이니.. |
| 445 | 그냥 되겠구나.. |
| 446 | 아 |
| 447 | |
| 448 | 김락현([락현]) 님의 말 : |
| 449 | 맹글링만 c로 해도되고.. |
| 450 | |
| 451 | 장재훈({재훈, 뮤스군} Alicization) 님의 말 : |
| 452 | 디폴트 인수를 |
| 453 | 쓰고 싶을때가 졸라 많은데 |
| 454 | c++로 하긴 싫고 해서 ㅋㅋ |
| 455 | 안했거든요 항상 |
| 456 | 아 근데..음 |
| 457 | |
| 458 | 김락현([락현]) 님의 말 : |
| 459 | c로 하고 |
| 460 | |
| 461 | 장재훈({재훈, 뮤스군} Alicization) 님의 말 : |
| 462 | 만약 |
| 463 | 음 |
| 464 | 그 |
| 465 | |
| 466 | 김락현([락현]) 님의 말 : |
| 467 | 그럼 프로토 타입에 설명을 잘 달아 놓음 되지 |
| 468 | |
| 469 | 장재훈({재훈, 뮤스군} Alicization) 님의 말 : |
| 470 | 디폴트 값 있잖아요 |
| 471 | 그거 header에 |
| 472 | 선언할 때 |
| 473 | 써주는거 아닌가요 |
| 474 | 근데 그럼 c-type 프로그램 만들면서 가져다 쓸땐 |
| 475 | 빌드 안될꺼 같은데.. |
| 476 | |
| 477 | 김락현([락현]) 님의 말 : |
| 478 | 음 그러겠네 |
| 479 | |
| 480 | 장재훈({재훈, 뮤스군} Alicization) 님의 말 : |
| 481 | 지금 |
| 482 | 파라미터 받는게 |
| 483 | 로그 파일 full path , |
| 484 | buffer size |
| 485 | multi threading flag? |
| 486 | 이렇게 였는데 |
| 487 | mt boolean flag로. |
| 488 | 세개. |
| 489 | |
| 490 | 김락현([락현]) 님의 말 : |
| 491 | multithread로 사용할지 안할지를.. |
| 492 | lib에서 flag로 인지해야 하는 거야? |
| 493 | |
| 494 | 장재훈({재훈, 뮤스군} Alicization) 님의 말 : |
| 495 | 음 |
| 496 | 그게 |
| 497 | 무조건 mt 에 대비하려고 하면요 |
| 498 | mutex를 무조건 걸어야되는건데 |
| 499 | 멀티스레딩 아니고 |
| 500 | |
| 501 | 김락현([락현]) 님의 말 : |
| 502 | 퍼포먼스땜에? |
| 503 | |
| 504 | 장재훈({재훈, 뮤스군} Alicization) 님의 말 : |
| 505 | 그 |
| 506 | 원래 |
| 507 | 멀티 스레딩인데 |
| 508 | 개발자가 디버깅용으로 싱글 스레딩으로 돌리는 경우 |
| 509 | 도 있잖아요 |
| 510 | 이럴땐 오히려 |
| 511 | 방해되지 않나 해서.. |
| 512 | |
| 513 | 김락현([락현]) 님의 말 : |
| 514 | 나라면... |
| 515 | |
| 516 | 장재훈({재훈, 뮤스군} Alicization) 님의 말 : |
| 517 | 그런 경우도 있지만 디버깅때 퍼포먼스 신경은 좀 오버고 |
| 518 | 싱글 스레드 어플리케이션인데 굳이 뮤텍스 걸 필요 있나 라는 생각도.. |
| 519 | |
| 520 | 김락현([락현]) 님의 말 : |
| 521 | multithread용 api를 별도로 만듬. |
| 522 | |
| 523 | 장재훈({재훈, 뮤스군} Alicization) 님의 말 : |
| 524 | ....... |
| 525 | 와 |
| 526 | |
| 527 | 김락현([락현]) 님의 말 : |
| 528 | 스탈이니깐 정답이라는 소리는 아니고.. |
| 529 | |
| 530 | 장재훈({재훈, 뮤스군} Alicization) 님의 말 : |
| 531 | 아 그러고보니 |
| 532 | |
| 533 | 김락현([락현]) 님의 말 : |
| 534 | LoggingApi만들고. |
| 535 | mLoggingApI를 별도로 제작. |
| 536 | |
| 537 | 장재훈({재훈, 뮤스군} Alicization) 님의 말 : |
| 538 | MT용 은 따로 있는 거도 많이.. |
| 539 | 봤네 |
| 540 | 왜 그생각을 못했지 |
| 541 | |
| 542 | 김락현([락현]) 님의 말 : |
| 543 | 거기서는 LoggingApI를 만들고 뮤텍스만 걸어줌. |
| 544 | 만들고->호출하고 |
| 545 | |
| 546 | 장재훈({재훈, 뮤스군} Alicization) 님의 말 : |
| 547 | 네네 |
| 548 | |
| 549 | 김락현([락현]) 님의 말 : |
| 550 | ㅇㅇ. |
| 551 | |
| 552 | 장재훈({재훈, 뮤스군} Alicization) 님의 말 : |
| 553 | 아 |
| 554 | 음 |
| 555 | 컨텍스트도 |
| 556 | MT 용 따로 해야겠네 흠 |
| 557 | 아니 컨텍스트가 아니고 |
| 558 | 컨텍스트 생성하는 함수를.. |
| 559 | |
| 560 | 김락현([락현]) 님의 말 : |
| 561 | ㅇㅇ. |
| 562 | |
| 563 | 장재훈({재훈, 뮤스군} Alicization) 님의 말 : |
| 564 | 거기선 |
| 565 | create mutex 만 |
| 566 | 하면 |
| 567 | 되겠지 |
| 568 | 음 |
| 569 | |
| 570 | 김락현([락현]) 님의 말 : |
| 571 | 고렇쥐. |
| 572 | |
| 573 | 장재훈({재훈, 뮤스군} Alicization) 님의 말 : |
| 574 | fs 블록 사이즈 물어보려다 |
| 575 | 엄한거 ㅁ좋은거 많이 듣네욬 |
| 576 | ㅋㅋㅋㅋㅋㅋ |
| 577 | memsize 는 default memory 로 넣어서 하면 128k로 하도록 하고.. |
| 578 | |
| 579 | 김락현([락현]) 님의 말 : |
| 580 | ㅋㅋㅋ |
| 581 | |
| 582 | 장재훈({재훈, 뮤스군} Alicization) 님의 말 : |
| 583 | 음 |
| 584 | 로그가 |
| 585 | 12만 글자면 |
| 586 | 적은편인가요 |
| 587 | 많은 편인가요? |
| 588 | |
| 589 | 김락현([락현]) 님의 말 : |
| 590 | 그런건 신경 쓰지 마 |
| 591 | |
| 592 | 장재훈({재훈, 뮤스군} Alicization) 님의 말 : |
| 593 | ... |
| 594 | ㅋㅋㅋㅋ |
| 595 | 64k 로 할까 |
| 596 | 싶어서 ㅋㅋ |
| 597 | 64k 해야지 |
| 598 | |
| 599 | 김락현([락현]) 님의 말 : |
| 600 | 굳이 하고 싶다면... 니가 지금 만드는 프로그램에 꼽을 생각하고.. |
| 601 | 거기에서 얼마나 쓰는지를 기준으로 만들어. |
| 602 | |
| 603 | 장재훈({재훈, 뮤스군} Alicization) 님의 말 : |
| 604 | 흠 |
| 605 | 전 로그는 안남기는ㄷ......... |
| 606 | ...... |
| 607 | ㅋㅋ |
| 608 | |
| 609 | 김락현([락현]) 님의 말 : |
| 610 | 그러냐 ㅋㅋㅋ |
| 611 | 이게 좀 기능이 확장이 되면.. |
| 612 | 디버그 포트를 통해서 출력하거나.. |
| 613 | 네트워크 전송등도 하면 잼날거 같은데.. |
| 614 | |
| 615 | 장재훈({재훈, 뮤스군} Alicization) 님의 말 : |
| 616 | 디버그 포트 ? |
| 617 | 가 뭔가요? |
| 618 | |
| 619 | 김락현([락현]) 님의 말 : |
| 620 | 그쯤되면 이미 개 빡세지므로... |
| 621 | |
| 622 | 장재훈({재훈, 뮤스군} Alicization) 님의 말 : |
| 623 | 아 시리얼 포트 같은 다른 i/o 인가 |
| 624 | 음 |
| 625 | |
| 626 | 김락현([락현]) 님의 말 : |
| 627 | 비졀 스튜디오로 코딩할때.... |
| 628 | |
| 629 | 장재훈({재훈, 뮤스군} Alicization) 님의 말 : |
| 630 | 아 |
| 631 | |
| 632 | 김락현([락현]) 님의 말 : |
| 633 | 밑에 출력창에 나오는거 있자나 |
| 634 | |
| 635 | 장재훈({재훈, 뮤스군} Alicization) 님의 말 : |
| 636 | debug window? |
| 637 | 인가 |
| 638 | |
| 639 | 김락현([락현]) 님의 말 : |
| 640 | ㅇㅇ |
| 641 | 뭐 그런거. |
| 642 | |
| 643 | 장재훈({재훈, 뮤스군} Alicization) 님의 말 : |
| 644 | 오 |
| 645 | 그거 |
| 646 | 해보고 싶 |
| 647 | 었으나 |
| 648 | .... |
| 649 | ㅋㅋ |
| 650 | |
| 651 | 김락현([락현]) 님의 말 : |
| 652 | 개발자 입장에서는 편하겠지? ㅋㅋ |
| 653 | |
| 654 | 장재훈({재훈, 뮤스군} Alicization) 님의 말 : |
| 655 | 그렇죠 ㅋㅋ |
| 656 | |
| 657 | 김락현([락현]) 님의 말 : |
| 658 | 암튼.. |
| 659 | 그런건 난중에.. |
| 660 | |
| 661 | 장재훈({재훈, 뮤스군} Alicization) 님의 말 : |
| 662 | 네네 감사합니다 ㅋ |
| 663 | |
| 664 | 김락현([락현]) 님의 말 : |
| 665 | 심심하면 내가 만들께 |
| 666 | |
| 667 | 장재훈({재훈, 뮤스군} Alicization) 님의 말 : |
| 668 | .... |
| 669 | 제가 형이 만드시기 편하도록 |
| 670 | 설계를 잘 해야 하지만 |
| 671 | 제가 설계 능력까진 안되서 |
| 672 | ㅋㅋㅋㅋ |
| 673 | |
| 674 | 김락현([락현]) 님의 말 : |
| 675 | 뭐 대충 짜면 되지 멀 |
| 676 | 일하는거 아니니깐 즐겁게 |
| 677 | |
| 678 | 장재훈({재훈, 뮤스군} Alicization) 님의 말 : |
| 679 | ㅋㅋ |
| 680 | 즐거운 고민 |
| 681 | ㅋㅋ |
| 682 | |
| 683 | 김락현([락현]) 님의 말 : |
| 684 | 음.. 참고로.... |
| 685 | 핸들 관리를 할때.. 사용자가 handle값을 관리하게 하기보다는... |
| 686 | 걍 int형 변수로 구분할게 할수 있으면.. |
| 687 | 사용성이 향상되지.. |
| 688 | 무슨 말이냐면... |
| 689 | 만약 handle *pHandle;이고 |
| 690 | Logging( pHandle, 블라블라... )형식이라 가정하면 api사용자가 pHandle값을 계속 관리를 해줘야 하자나 |
| 691 | |
| 692 | 장재훈({재훈, 뮤스군} Alicization) 님의 말 : |
| 693 | 넹 |
| 694 | |
| 695 | 김락현([락현]) 님의 말 : |
| 696 | Logging( int Logid, 블라블라 ... )형태로 해 놓으면.. |
| 697 | |
| 698 | 장재훈({재훈, 뮤스군} Alicization) 님의 말 : |
| 699 | 음 |
| 700 | 구조체로 context 만들어서 |
| 701 | 갖고 있게 했는데.. |
| 702 | |
| 703 | 김락현([락현]) 님의 말 : |
| 704 | 디파인 값으로 처리해 노고 import, export를 매우 쉽게 할수 있지 |
| 705 | 구조체로 context를 가지고 있게 하고.. |
| 706 | 그건 내부에서 관리하고.. |
| 707 | |
| 708 | 장재훈({재훈, 뮤스군} Alicization) 님의 말 : |
| 709 | 어 음 |
| 710 | |
| 711 | 김락현([락현]) 님의 말 : |
| 712 | context <-> logid를 맵핑할수 있는 로직이 있어야 겠지.. |
| 713 | |
| 714 | 장재훈({재훈, 뮤스군} Alicization) 님의 말 : |
| 715 | 엥 |
| 716 | 음 |
| 717 | |
| 718 | 김락현([락현]) 님의 말 : |
| 719 | logid가 중복되지 않게 처리하는 약간의 관리로직도 필요하고... |
| 720 | |
| 721 | 장재훈({재훈, 뮤스군} Alicization) 님의 말 : |
| 722 | 그 |
| 723 | import export 가 쉽다는건 |
| 724 | 어떤건가요?? |
| 725 | |
| 726 | 김락현([락현]) 님의 말 : |
| 727 | lib사용자가 개발하는 하는데.. 소스파일이 10개가 있다면... |
| 728 | 전역변수로 처리하던지 인자로 받던지 핸들값을 받아야 하자나 |
| 729 | |
| 730 | 장재훈({재훈, 뮤스군} Alicization) 님의 말 : |
| 731 | 네 |
| 732 | |
| 733 | 김락현([락현]) 님의 말 : |
| 734 | 그걸 정수형으로 한다면 좀더 편하게 할수 있다는 말. |
| 735 | |
| 736 | 장재훈({재훈, 뮤스군} Alicization) 님의 말 : |
| 737 | 음 |
| 738 | 그게 정수로 하는거랑 |
| 739 | 어드레스로 하는거랑 |
| 740 | 구현의 용이성 측면에서 |
| 741 | 차이가 있나요?? |
| 742 | |
| 743 | 김락현([락현]) 님의 말 : |
| 744 | 사용자 입장에서? |
| 745 | |
| 746 | 장재훈({재훈, 뮤스군} Alicization) 님의 말 : |
| 747 | 네 라이브러리 사용자 입장에서 |
| 748 | 라이브러리를 이용하는 개발자 입장이죠 |
| 749 | |
| 750 | 김락현([락현]) 님의 말 : |
| 751 | ㅇㅇ |
| 752 | |
| 753 | 장재훈({재훈, 뮤스군} Alicization) 님의 말 : |
| 754 | 음 |
| 755 | 네 |
| 756 | 지금 |
| 757 | 잠깐 구조를 |
| 758 | 말씀드리면.. |
| 759 | |
| 760 | 김락현([락현]) 님의 말 : |
| 761 | 직관성면에서 큰 차이가 남. |
| 762 | |
| 763 | 장재훈({재훈, 뮤스군} Alicization) 님의 말 : |
| 764 | 일단 간단하게 말씀드려볼게요 |
| 765 | context = create_context (...); |
| 766 | |
| 767 | ... |
| 768 | |
| 769 | /* 로그 쓰기 */ |
| 770 | log_write (context, 메시지.....); |
| 771 | |
| 772 | log_flush (context); |
| 773 | |
| 774 | /* 로그 이제 안쓸꺼면 */ |
| 775 | log_destory_context (context); |
| 776 | 이런식이거든요 |
| 777 | |
| 778 | 김락현([락현]) 님의 말 : |
| 779 | ㅇㅇ |
| 780 | |
| 781 | 장재훈({재훈, 뮤스군} Alicization) 님의 말 : |
| 782 | 직관성 면에서 차이가 난다고 하신게.. |
| 783 | int local_logid = param_logid; |
| 784 | 이거랑 |
| 785 | context local_ctx = param_ctx; |
| 786 | 이정도 차이일거 같은데 |
| 787 | 음 |
| 788 | |
| 789 | 김락현([락현]) 님의 말 : |
| 790 | 개발을 하다보면.... |
| 791 | 예상치 못했던 곳에 로그를 찍어 보고 싶은 상황이 생기 않을까? |
| 792 | 나라면..... |
| 793 | #define LOGID_MAIN 1, #define LOGID_DEBUG 2 |
| 794 | 라고 해 놓고. |
| 795 | |
| 796 | 장재훈({재훈, 뮤스군} Alicization) 님의 말 : |
| 797 | .... |
| 798 | |
| 799 | 김락현([락현]) 님의 말 : |
| 800 | WRITELOG( LOGID_DEBUG, 블라븝라.. ) |
| 801 | 라고 편하게 찍어 보고 싶을 것 같아. |
| 802 | 뭐 로그ID를 글로별 변수로 처리해 놓고 하면 큰 차이는 없겠구나. |
| 803 | |
| 804 | 장재훈({재훈, 뮤스군} Alicization) 님의 말 : |
| 805 | 음 |
| 806 | |
| 807 | 김락현([락현]) 님의 말 : |
| 808 | 잠깐 생각해보면.. |
| 809 | |
| 810 | 장재훈({재훈, 뮤스군} Alicization) 님의 말 : |
| 811 | 저렇게 하면요 |
| 812 | 로 그아이디도 제가 지정해 줄 수 있어야 하는거네요 그럼 |
| 813 | |
| 814 | 김락현([락현]) 님의 말 : |
| 815 | LOGINIT( 변수, "셋팅할 로그아이디"); |
| 816 | ㅇㅇ |
| 817 | |
| 818 | 장재훈({재훈, 뮤스군} Alicization) 님의 말 : |
| 819 | 그래야 저 상수 값이 유효할텐데 |
| 820 | |
| 821 | 김락현([락현]) 님의 말 : |
| 822 | 맞어 |
| 823 | CLOSELOG( "셋팅한 로그아이디" ); |
| 824 | CLOSELOGALL(); |
| 825 | 정도? |
| 826 | 그리고 LIB 사용자는 래퍼 함수를 만들어서... |
| 827 | |
| 828 | 장재훈({재훈, 뮤스군} Alicization) 님의 말 : |
| 829 | 음 |
| 830 | 형이라면 그럼 |
| 831 | 상수 값을 |
| 832 | |
| 833 | 김락현([락현]) 님의 말 : |
| 834 | WRITELOG ( LOGID1 | LOGID2, "블라블라.. ) |
| 835 | |
| 836 | 장재훈({재훈, 뮤스군} Alicization) 님의 말 : |
| 837 | 어떻게 관리하시겟어요?? |
| 838 | |
| 839 | 김락현([락현]) 님의 말 : |
| 840 | 도 좋겠군. |
| 841 | 나라면 당연히 상수값으로 처리하지. |
| 842 | |
| 843 | 장재훈({재훈, 뮤스군} Alicization) 님의 말 : |
| 844 | 그니까 음 |
| 845 | 저 상수로 |
| 846 | 아까 |
| 847 | 그 |
| 848 | id 값과 |
| 849 | 로그 파일 같은 그런 정보들과의 매핑 |
| 850 | 을 |
| 851 | 어떤 방식으로 처리하실거 같냐는... |
| 852 | 저거 리스트 형식으로 만들면 매번 loop 돌아야되서 안될거고 |
| 853 | |
| 854 | 김락현([락현]) 님의 말 : |
| 855 | 쬐그마한 맵을 만들어. |
| 856 | |
| 857 | 장재훈({재훈, 뮤스군} Alicization) 님의 말 : |
| 858 | 로그 아이디 만들 때 |
| 859 | 동적할당으로 아이디 값 만큼 만들어서 |
| 860 | 배열 처리하면 |
| 861 | 속도는 잘 나올거 같은데.. |
| 862 | |
| 863 | 김락현([락현]) 님의 말 : |
| 864 | ㅇㅇ |
| 865 | |
| 866 | 장재훈({재훈, 뮤스군} Alicization) 님의 말 : |
| 867 | 아이디라.... |
| 868 | 음 |
| 869 | |
| 870 | 김락현([락현]) 님의 말 : |
| 871 | 어차피 4바이트 변수로 하면 되니깐.. |
| 872 | 100개 정도 디파인해 놓고 걍 쓰면 되지 |
| 873 | 100개 이상 만들면 에러 처리 |
| 874 | |
| 875 | 장재훈({재훈, 뮤스군} Alicization) 님의 말 : |
| 876 | 4바이트 변수로 아이디값 지정하게 하려면 OR 연산으로 지정하는건 골아플거 같고 |
| 877 | |
| 878 | 김락현([락현]) 님의 말 : |
| 879 | 그건 lib 사용자가 하라고 하고 |
| 880 | |
| 881 | 장재훈({재훈, 뮤스군} Alicization) 님의 말 : |
| 882 | 하아 |
| 883 | 음 |
| 884 | |
| 885 | 김락현([락현]) 님의 말 : |
| 886 | lib입장에서는 그런것까지 신경쓸 필요는 업음. |
| 887 | |
| 888 | 장재훈({재훈, 뮤스군} Alicization) 님의 말 : |
| 889 | 음 |
| 890 | |
| 891 | 김락현([락현]) 님의 말 : |
| 892 | 멀티 로깅은 logid를 배타적으로 만들어야 한다는 전제가 있어야 쉽게 구현가능하기 땜시 |
| 893 | }}} |
| 894 | |