入力ストリームの読み取りを高速化する方法の最適化/連結速度の向上

Ofek

現在、私は100,000 +/-行の入力(例:http//pastebin.com/zhuHLcvA)を読んでいます。これは単一の「;」で終わります。

このコードを使用すると、PCで読み取るのに20秒以上かかります(長すぎます)。

public static String readFromStandardIO() {

    String returnValue = "";

    try {
        BufferedReader reader = new BufferedReader(new InputStreamReader(
                System.in));
        String userInput;
        // System.out.println("Enter polynomials:\n");
        while (true) {
            userInput = reader.readLine();
            // System.out.println(userInput);
            returnValue = returnValue.concat(userInput);
            if (userInput.equals(";")) {
                break;
            }
        }

    } catch (Exception e) {

    }

    return returnValue;

}

タイミング方法を使用すると、奇妙な結果が得られます。

long start = System.nanoTime();
pol = readFromStandardIO();
long elaspedTime = System.nanoTime() - start;
System.out.println("reading stream took: " + elaspedTime);      

そしてそれは出力します:

reading stream took: 1914854722

行の連結によってすべてが遅くなっているようです。

returnValue = returnValue.concat(userInput)

それがなければ、すべてが瞬時に行われます。

連結の速度を向上させるにはどうすればよいですか?

オートクラブ
public static String readFromStandardIO() {
   StringBuilder returnValue = new StringBuilder(9999999);
   try {
       BufferedReader reader = new BufferedReader(System.in);
       String userInput;
       while ((userInput = reader.readLine()) != null) {
          returnValue.append(userInput);
       }
       reader.close();
   } catch (Exception e) {

   }
   return returnValue.toString();
}

または、これははるかに高速です(jdkが* .nioをサポートしている場合):

public static String readFromStandardNIO() {
    java.nio.ByteBuffer buffer = java.nio.ByteBuffer.allocate(20480000);
    try {
        ReadableByteChannel channel = Channels.newChannel(System.in);
        channel.read(buffer);
        channel.close();
    } catch (Exception e) {

    }
    return new String(buffer.array());
}

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

SQLテーブルへのテキストファイルの読み取りを高速化する最良の方法は?

分類Dev

ユーザーフォームExcelでリストボックス値の入力を高速化する方法

分類Dev

openpyxlの読み取りを高速化

分類Dev

RでCSVファイルの読み取りを高速化する方法

分類Dev

vb.netでのリストビューの入力を高速化する方法

分類Dev

Rでのネットワーク行列の入力を高速化する方法

分類Dev

Mysqlの最適化:これを高速化する方法はありますか?

分類Dev

ソケット入力ストリームが最後の読み取りでハングします。これを処理する最良の方法?

分類Dev

ファイルからのいくつかの読み取りを高速化するAndroidの方法

分類Dev

Pythonでのデータ読み取りを高速化しますか?

分類Dev

JavaScript画像の読み込みを高速化する方法

分類Dev

さまざまなリモートソースからの読み取り:スレッドを最適化する方法は?

分類Dev

スクリプトの速度を最適化する方法は?

分類Dev

この暗号化方法を高速化する方法C#ファイルストリーム

分類Dev

入力ストリームを特定の時間読み取る方法はありますか?

分類Dev

組み込みLinux:シリアルポートからのバイトの読み取りが遅すぎて転送を高速化できない

分類Dev

このコードのビットを高速化するにはどうすればよいですか(ループ/リスト/タプルの最適化)?

分類Dev

連結成分のラベリングを高速化する方法(2回目のパス)

分類Dev

Aフレームウェブサイトのモバイル/デスクトップ読み込みを高速化する方法

分類Dev

StreamReaderからの検索/読み取りを高速化

分類Dev

Javaでファイル/入力ストリームの内容を読み取る最も簡潔な方法は?

分類Dev

Googleカレンダーの読み取り/書き込みを高速化/バッチ処理する方法はありますか?

分類Dev

Pythonスクリプトのforループを高速化する

分類Dev

MySQLのselectクエリを最適化する方法または高速化する方法

分類Dev

ファイルの読み取りとオープンを高速化

分類Dev

アプリの起動ごとにfirestoreの読み取りを最適化する方法

分類Dev

PythonはExcelファイルの読み取りを高速化します

分類Dev

このmysql結合クエリを高速化する方法

分類Dev

ファイルから方程式のリストを読み取って評価するときにPythonの評価を高速化する

Related 関連記事

  1. 1

    SQLテーブルへのテキストファイルの読み取りを高速化する最良の方法は?

  2. 2

    ユーザーフォームExcelでリストボックス値の入力を高速化する方法

  3. 3

    openpyxlの読み取りを高速化

  4. 4

    RでCSVファイルの読み取りを高速化する方法

  5. 5

    vb.netでのリストビューの入力を高速化する方法

  6. 6

    Rでのネットワーク行列の入力を高速化する方法

  7. 7

    Mysqlの最適化:これを高速化する方法はありますか?

  8. 8

    ソケット入力ストリームが最後の読み取りでハングします。これを処理する最良の方法?

  9. 9

    ファイルからのいくつかの読み取りを高速化するAndroidの方法

  10. 10

    Pythonでのデータ読み取りを高速化しますか?

  11. 11

    JavaScript画像の読み込みを高速化する方法

  12. 12

    さまざまなリモートソースからの読み取り:スレッドを最適化する方法は?

  13. 13

    スクリプトの速度を最適化する方法は?

  14. 14

    この暗号化方法を高速化する方法C#ファイルストリーム

  15. 15

    入力ストリームを特定の時間読み取る方法はありますか?

  16. 16

    組み込みLinux:シリアルポートからのバイトの読み取りが遅すぎて転送を高速化できない

  17. 17

    このコードのビットを高速化するにはどうすればよいですか(ループ/リスト/タプルの最適化)?

  18. 18

    連結成分のラベリングを高速化する方法(2回目のパス)

  19. 19

    Aフレームウェブサイトのモバイル/デスクトップ読み込みを高速化する方法

  20. 20

    StreamReaderからの検索/読み取りを高速化

  21. 21

    Javaでファイル/入力ストリームの内容を読み取る最も簡潔な方法は?

  22. 22

    Googleカレンダーの読み取り/書き込みを高速化/バッチ処理する方法はありますか?

  23. 23

    Pythonスクリプトのforループを高速化する

  24. 24

    MySQLのselectクエリを最適化する方法または高速化する方法

  25. 25

    ファイルの読み取りとオープンを高速化

  26. 26

    アプリの起動ごとにfirestoreの読み取りを最適化する方法

  27. 27

    PythonはExcelファイルの読み取りを高速化します

  28. 28

    このmysql結合クエリを高速化する方法

  29. 29

    ファイルから方程式のリストを読み取って評価するときにPythonの評価を高速化する

ホットタグ

アーカイブ