"新しい" とは、今まで全部無名classにコンパイルしてたラムダを、invoke dynamic使って動的に生成するようになるとかそういうやつ。 ラムダ以外の最適化もやってるようですが?詳しくは知りません。 Scala 2.12から正式に入るらしいですが、(これ書いてる時点から見て)つい昨日くらい(2015/06/25)に出たScala2.11.7でも、明示的にオプションを指定すれば、実験的オプションとしてですが、使えるそうです。 内部の仕組みは、以下のScaladays2015のスライド見るとか、あとは各自ググってください http://downloads.typesafe.com/website/presentations/ScalaDaysSF2015/T2_Rytz_Backend_Optimizer.pdf 公式に書いてありますが、2.11.7においてJava8のバックエンドを
[まとめ] LL脳がscalaの勉強を始めたよ LL脳がscalaの勉強を始めたよ その34 Scalaコップ本の11章残りをやってしまいますよー、今回はプリミティブ型なんかについてデス 11章は全体的に座学的な内容なのでほぼ写経…(´・ω・`)…まあ頑張ろうかしらね プリミティブ型の実装方法 Scalaでの整数演算はJVMとの互換性の点からプリミティブ型の演算として定義されているようデス ただし、整数をオブジェクトとして扱う必要ができた場合はjava.lang.Integerというバックアップクラスを使うらしいデスね。ちなみに整数をオブジェクトとして扱うのはtoStringメソッドの呼び出しやAny型の変数に整数を代入したりする場合とのことです。 このようにInt型の整数はjava.lang.Integerに透過的に変換されるらしく、この場合のjava.lang.Integerを「ボクシ
どうでもいい細かいパフォーマンスの話。とあるライブラリ作って遊んでる影響で、最近boxingや細かいパフォーマンスについて色々調べてるので、ついでに書いておく。 以前から、これちょっとだけ気になってたけど、ちゃんと計測してみたら一応差がでる。 つまり val intList: List[Int] = // 大きなIntのList intList.map(identity) よりも val intList: List[Int] = // 大きなIntのList intList.map(x => x) のほうが、速くなる(可能性がある)という話です。もちろん、最適化によって差がでないこともあるし、差が出るとしてもせいぜい数%から数十%程度でしょう。 scala -Xprint:jvm -e "List(0).map(identity)"や scala -Xprint:jvm -e "List(
列挙順自体はとくに意味ありません。あと「どの最適化がどのくらい速くなるのか?」を詳細に計ったことはないですし、「原理的にこうなってるから(ry」というのを説明するに過ぎません。中には「JITで無意味になるようなどうでもいい細かすぎること」も書いてありますし、最適化のトレードオフとして失うものもあるので、そのあたり自己責任でお願いします。本当に最適化が必要とされる場合は、以下のものを無闇に実行するよりまず計測したほうがいいのは、言うまでもありません。*1 1. private[this]をつかえ scalaのvalやvarは、private[this]にしたときのみ、直接のフィールドアクセスになります(それ以外ではメソッド呼び出し)。シングルトンのobjectの場合も同様です。private[this]をつけられる場合はできるだけつけましょう 2. なんでもかんでもListをつかうな 最初の
原文(投稿日:2011/11/30)へのリンク Yammerの従業員であるCoda Hale氏がScalaの商用ベンダであるTypesafe社へ送ったメールがYCombinatorとGitHubのgist経由でリークした。メールによれば、Yammerは複雑さや性能面を鑑みて、基盤のインフラをScalaからJavaへ戻すそうだ。 YammerのPR部門のShelley Risk氏によればこのメールはCoda Hale氏の個人的な意見であり、Yammerの公式な見解ではないとのことだ。このリーク後、Coda Hale氏は自身の考えをhttp://codahale.com/the-rest-of-the-story/で表明している。氏はこのメールはDonald Fischer氏(Typesafe社のCEO)からのフィードバックの要請に答えたもので、移行を示唆するツイートを補足したものだと説明して
サイバーエージェントのインターネット広告事業を技術面から支える「アドテクスタジオ」では、関数型言語の一つであるScalaが積極的に活用されています。今回、スマートフォン特化型のリアルタイムターゲティング広告を実現するサービス「Dynalyst」(図1)を開発した韓翔元氏(写真1)、そしてスマートフォン向けアドプラットフォームである「AMoAdアドネットワーク」(図2)の開発と運用を担当する井上ゆり氏(写真2)に、Scalaの魅力を伺いました。 最新のアドテクを詰め込んだDynalystにScalaを採用 ――最初にScalaに興味を持ったきっかけを教えてください。 井上:サイバーエージェントに入社する前から関数型言語に興味があり、評価が必要になるまで実際の計算を行わない遅延評価のしくみなどに魅力を感じていました。その中でも特にScalaにはJVM上で実行できるといったメリットがあり
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く