タグ

ProgrammingとStringに関するdecoy2004のブックマーク (4)

  • JavaのString生成方法がボトルネックになっていた話 - WAF Tech Blog | クラウド型 WAFサービス Scutum

    はじめに 先日、私たちが開発しているクラウド型WAFサービス、Scutum(スキュータム)において、予想していなかった箇所の修正によってサーバの負荷が大幅に減るということがありました。原因はこのエントリのタイトルにもあるように、Stringクラスのインスタンスを生成する際の方法にありました。 Stringクラスのコンストラクタとcharset Stringクラスにはいくつかのコンストラクタが用意されています。我々が使っていたのはString(byte[] bytes, String charsetName)です。2つめの引数で、"MS932"や"UTF-8"のような文字集合(以下charset)を明示的に指定するものです。 ScutumのようなWAF(Web Application Firewall)は通常のウェブアプリケーションとは異なり、起動している間にさまざまなcharsetを扱うこ

    JavaのString生成方法がボトルネックになっていた話 - WAF Tech Blog | クラウド型 WAFサービス Scutum
  • String.replaceは思ったほど速くない - Qiita

    一般的にJavaで何度も同じ文字列置換を行う際には、正規表現による置換が必要であればString.replaceAllではなくPattern.compileしたPatternインスタンスを使いまわし、固定文字列による置換で事足りるのであれば単にString.replaceで置換するという使い方が多いと思います。 private String regex = ... private Patten pattern = Pattern.compile(regex); private String masking(String input) { input = input.replace("yyy", "XXX"); // input = input.replaceAll(regex, "xxx"); は遅いので書き換え input = pattern.matcher(input).replace

    String.replaceは思ったほど速くない - Qiita
    decoy2004
    decoy2004 2015/04/27
    『replaceの速度が欲しい場合はApache Commons LangのStringUtils.replaceを使うなどで逃げるようです。』
  • String.formatが遅い理由 - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

    String.formatが遅い理由 - Qiita
    decoy2004
    decoy2004 2014/08/07
    『性能が要求される箇所では、format関数/String.formatを使わない方が良い。 書式に応じた出力が必要な場合でも、String.formatを使わずに、可能であれば自分でFormatterをnewして使いまわした方が良い。』
  • 「null」をフラグとして使うのは、やめた方がいい - 地平線に行く

    null をフラグとして使うのは、やめた方がいいと思います。 null は、ただ変数が初期化されていないことを表しているだけです。 この意味以外で、null を使わない方がいいと思います。 null をフラグとして使う 「null をフラグとして使う」というのは、「null なら xxxx」というように、null が何らかの意味を持って使われていることを指します。 例えば、下記のコードでは「null はゲストユーザを指すフラグ」として使われています。 /** * ユーザ用のヘッダを作る処理 */ public String createHeader(User user){ (…中略…) String name; if(user != null){ name = user.getName(); }else{ name = "Guest"; // null ならゲストユーザ } 問題点 これの

    「null」をフラグとして使うのは、やめた方がいい - 地平線に行く
    decoy2004
    decoy2004 2014/08/01
    『例えば、以下のコードを見たときにnull の意味をすぐに理解できるでしょうか String header = createHeader(null);』
  • 1