mysql:1220
From: とみたまさひろ <とみたまさひろ <tommy@xxxxxxxxxx>>
Date: Wed, 08 Sep 1999 02:28:05 +0900
Subject: [mysql 01220] Re: new myodbc
とみたです。 At Fri, 27 Aug 1999 14:27:20 +0900, takeshi@xxxxxxxxxx wrote: > これはひどいですね。 > EUC 版は 全て一度漢字変換を通しているから > -DDEBUG でコンパイルしてるから > コンパイル時にまだ最高の最適フラグを立ててない > が効いているのかもしれません。 > SJIS 版だとどうでしょう。 > EUC に比べて処理はぐっと少ないはずなので、 > もし SJIS 版でも同じくらい遅ければ、 > 他の要因を疑わなくてはなりません。 これですけど、メモリの確保&解放に時間喰ってるってことはないでしょうか。 文字列項目1個ごとに、malloc & free を行なっているので、10項目 x 5000レ コードのテーブルだと、50000回 malloc & free を行なうことになります。 EUC→SJIS(データ取り出し時)の場合は、バイト数は増えることないから、メ モリの確保&解放するんではなく、EUC 領域を SJIS データで上書きするという 手はどうでしょう? # あまり美しくないけど…。 具体的にはこんな感じ(試してません…)。 *** results.c.orig Wed Sep 8 02:21:07 1999 --- results.c Wed Sep 8 02:21:45 1999 *************** *** 462,471 **** if (field->flags & BINARY_FLAG) break; case FIELD_TYPE_STRING: case FIELD_TYPE_VAR_STRING: ! euc_value = value; ! value = (char *)euc_to_sjis(euc_value, length); length = strlen(value); - my_free((gptr)euc_value, MYF(0)); } } #endif KANJI --- 462,469 ---- if (field->flags & BINARY_FLAG) break; case FIELD_TYPE_STRING: case FIELD_TYPE_VAR_STRING: ! euc_to_sjis(value, length); length = strlen(value); } } #endif KANJI *** kanji.c.orig Wed Sep 8 02:19:20 1999 --- kanji.c Wed Sep 8 02:20:12 1999 *************** *** 101,107 **** Convert FROM contain EUC codes to SHIFT JIS codes return converted buffer ********************************************************************/ ! char *euc_to_sjis(const char *euc, int euc_len) { char *sjis; int s; --- 101,107 ---- Convert FROM contain EUC codes to SHIFT JIS codes return converted buffer ********************************************************************/ ! char *euc_to_sjis(char *euc, int euc_len) { char *sjis; int s; *************** *** 109,116 **** if (euc_len == SQL_NTS) euc_len = strlen(euc); ! sjis = my_malloc(euc_len * 2 + 1, MYF(0)); ! if (!sjis) return NULL; s = 0; d = 0; --- 109,115 ---- if (euc_len == SQL_NTS) euc_len = strlen(euc); ! sjis = euc; s = 0; d = 0; -- とみたまさひろ <tommy@xxxxxxxxxx>
1161 1999-08-26 20:08 [<takeshi@xxxxxxxxxx>] new myodbc 1163 1999-08-26 21:13 ┣["Sugawara Hajime" <s] 1164 1999-08-27 08:36 ┃┗[<takeshi@xxxxxxxxxx>] 1165 1999-08-27 10:54 ┃ ┗["Sugawara Hajime" <s] 1168 1999-08-27 14:28 ┃ ┗[<takeshi@xxxxxxxxxx>] 1166 1999-08-27 11:14 ┗["Shoku Yanagawa" <ya] 1167 1999-08-27 14:27 ┗[<takeshi@xxxxxxxxxx>] 1169 1999-08-27 14:48 ┣["Shoku Yanagawa" <ya] 1186 1999-09-01 14:05 ┃┗[<takeshi@xxxxxxxxxx>] 1197 1999-09-02 16:23 ┃ ┗["Sugawara Hajime" <s] 1198 1999-09-02 17:02 ┃ ┗[<takeshi@xxxxxxxxxx>] 1199 1999-09-02 17:18 ┃ ┗["Sugawara Hajime" <s] 1200 1999-09-02 19:39 ┃ ┗[<takeshi@xxxxxxxxxx>] 1219 1999-09-08 00:18 ┃ ┗[<takeshi@xxxxxxxxxx>] 1223 1999-09-08 10:22 ┃ ┣["Sugawara Hajime" <s] 1224 1999-09-08 12:21 ┃ ┃┗[<takeshi@xxxxxxxxxx>] 1225 1999-09-08 14:17 ┃ ┃ ┗[kaiser <kaiser@xxxxx] 1232 1999-09-09 15:33 ┃ ┗["Shoku Yanagawa" <ya] 1234 1999-09-09 15:53 ┃ ┗[<takeshi@xxxxxxxxxx>] 1235 1999-09-09 16:52 ┃ ┗["Shoku Yanagawa" <ya] -> 1220 1999-09-08 02:28 ┗[とみたまさひろ <tomm] 1221 1999-09-08 03:23 ┗[<takeshi@xxxxxxxxxx>] 1222 1999-09-08 04:02 ┣[kaiser <kaiser@xxxxx] Re: new myodbc EUC 1233 1999-09-09 15:48 ┃┗["Shoku Yanagawa" <ya] 1227 1999-09-09 00:41 ┗[とみたまさひろ <tomm] 1228 1999-09-09 09:30 ┗[<takeshi@xxxxxxxxxx>]