twitter4jのソースコードで、JSONをobjectに変換している部分にて、無駄と思
われる箇所を見つけましたので、投稿しました。
public JSONObject asJSONObject() throws TwitterException {
try {
// return new JSONObject(asString()); ★ここ
return new JSONObject(new JSONTokener(asReader()));
} catch (JSONException jsone) {
throw new TwitterException(jsone.getMessage() + ":" +
this.responseAsString, jsone);
}
}
public JSONArray asJSONArray() throws TwitterException {
try {
// return new JSONArray(asString()); ★ここ
return new JSONArray(new JSONTokener(asReader()));
} catch (JSONException jsone) {
throw new TwitterException(jsone.getMessage() + ":" +
this.responseAsString, jsone);
}
}
確かにオリジナルの方法が簡単ですが、一度文字列を生成してから処理すること
で、かなりヒープを消費します。
なおかつその先の処理ではStringReaderを生成して処理していますので、全くの
無駄と言えそうです。
試したところ、処理速度も向上しました。
本来ならばtwitter4jのコミッタになって、リポジトリに直接postすればいいの
でしょうが、まだtwitter4jの何たるかも判ってないのでMLにて失礼します。
# xAuth実装期待してます
--------------------------------------------
石垣和人 Twitter @Kazkun
Ishigaki, KazuHITO kazku...@gmail.com
--------------------------------------------
投稿が管理対象となっていたのに気が付かず3日遅れの配信となってしまいました。ごめんなさい。
ご指摘ありがとうございます。
asString() を呼び出しているのは確かデバッグをしやすくするため
だった気がするのですが・・殆どの場合は仰る通りストリームで処理
した方がパフォーマンス/メモリフットプリント上良いですね。
すぐに修正いたします。
http://twitter4j.org/jira/browse/TFJ-319
> 本来ならばtwitter4jのコミッタになって、リポジトリに直接postすればいいの
> でしょうが、まだtwitter4jの何たるかも判ってないのでMLにて失礼します。
github で pull リクエストを送って頂くとマージが楽です。
patch をメーリングリストに投げて頂いても結構です。
以上よろしくお願いいたします。
--
Yusuke Yamamoto
yus...@mac.com
このメールは: [x] ブログ/Twitterへ転載可能 [ ] 私信
Twitter でフォロー : http://twitter.com/yusukey
blogを購読: http://yusuke.homeip.net/diary/
> --
> Twitter4J の最新情報をフォロー: http://twitter.com/t4j_news
> 現在開発中のバージョン: 2.1.1
> http://twitter4j.org/jira/secure/IssueNavigator.jspa?requestId=10030
> バグトラッキング: http://twitter4j.org/jira/browse/TFJ
>
> このメールは次の Google グループの参加者に送られています: Twitter4J J
> このグループにメールで投稿: twitt...@googlegroups.com
> このグループから退会する: twitter4j-j...@googlegroups.com
> その他のオプションについては、次の URL からグループにアクセスしてくださ
> い。 http://groups.google.com/group/twitter4j-j?hl=ja
こちらからダウンロードしていただけます。
http://twitter4j.org/en/index.html#download
http://twitter4j.org/maven2/org/twitter4j/twitter4j-core/2.1.1-SNAPSHOT/
以上よろしくお願いいたします。
--
Yusuke Yamamoto
yus...@mac.com
このメールは: [x] ブログ/Twitterへ転載可能 [ ] 私信
Twitter でフォロー : http://twitter.com/yusukey
blogを購読: http://yusuke.homeip.net/diary/
>> # xAuth実装期待してます
実は xauth はすでにスナップショットビルドで対応しています。
ただ、現在アクセス権を申請中の段階でテストケースがありません。
「アクセス件が無ければ401が返る」、ことだけテストしています。
http://github.com/yusuke/twitter4j/blob/master/twitter4j-core/src/test/java/twitter4j/http/OAuthTest.java#L399
もしアクセス権をお持ちでしたらお試し頂ければ幸いです。
以下のような twitter4j.properties / コードで動く・・・と思います。
・twitter4j.properties
oauth.consumerKey=****
oauth.consumerSecret=****
・コード
Twitter twitter = new TwitterFactory().getInstance(screenName, password);
twitter.getOAuthAccessToken();
--------
--
Yusuke Yamamoto
yus...@mac.com
このメールは: [x] ブログ/Twitterへ転載可能 [ ] 私信
Twitter でフォロー : http://twitter.com/yusukey
blogを購読: http://samuraism.jp/diary/
On Mar 6, 2010, at 5:44 PM, Kazkun wrote:
> 実は xauth はすでにスナップショットビルドで対応しています。
svnで取得していたため、最新ビルドが取得できておらず、密かに
「対応してないじゃん」と思っておりました。gitにて取得、なるほど
と理解しました。
さて、xAuthには申請が必要だったのですね。私も先程申請しました。
ということで401が返ってくることだけは確認できました。
利用可能になり次第テストしてみようと思っています。
--------------------------------------------
石垣和人 Twitter @Kazkun
Ishigaki, KazuHITO kazku...@gmail.com
--------------------------------------------
2010年3月9日23:27 Yusuke Yamamoto <yus...@mac.com>:
私も近日中に xAuth のアクセス権を貰えそうです。まともなテストケースが
通りましたらアップデートいたしますね。
--
Yusuke Yamamoto
yus...@mac.com
このメールは: [ ] ブログ/Twitterへ転載可能 [x] 私信
Twitter でフォロー : http://twitter.com/yusukey
blogを購読: http://samuraism.jp/diary/