タグ

cに関するyassのブックマーク (31)

  • やり直しC言語:複雑な宣言の読み方

    C言語は宣言文が非常に読みにくいことで有名で、後発のGo言語はこれを批判して宣言の構文を変えています。私もずっと読むのが苦手だったのですが、私の頭が悪いのではなく、C言語の仕様がヘン、ということらしい。 今まで飽きるほどこの手の解説は書かれてきてるわけですが、自分なりにまとめないと覚えた気がしないので、あえてまとめておきます。ここに書いてある内容は、「C言語ポインタ完全制覇」に詳しく書いてあります。 型の派生 C言語では、int, char, floatなどの基型から、配列やポインタを派生していくことができます。対象を並べたものが配列で、対象を指し示すのがポインタです。 配列やポインタからも配列やポインタを派生できるので、派生パターンは無限に存在します。 int int の配列 int の配列 の配列 ... int へのポインタ int へのポインタ へのポインタ ... int への

    やり直しC言語:複雑な宣言の読み方
    yass
    yass 2015/09/23
  • Facebook、静的解析ツールInferをオープンソース化

    Spring BootによるAPIバックエンド構築実践ガイド 第2版 何千人もの開発者が、InfoQのミニブック「Practical Guide to Building an API Back End with Spring Boot」から、Spring Bootを使ったREST API構築の基礎を学んだ。このでは、出版時に新しくリリースされたバージョンである Spring Boot 2 を使用している。しかし、Spring Boot3が最近リリースされ、重要な変...

    Facebook、静的解析ツールInferをオープンソース化
    yass
    yass 2015/06/24
    " 現在のところ、Nullポインタアクセス、リソースおよびメモリリークを教えてくれる。InferはC、Java、Objective-Cで書かれたコードに対して実行できる "
  • 「私がJuliaを推す理由」(翻訳) - アドファイブ日記(ミラー版)

    Juliaについて書かれた海外のブログ記事でとても共感したものがあったのでブログ主に無断で翻訳したものを掲載します。(もし問題ありましたらご連絡ください。) このブログの著者はEvan Miller氏というソフトウェア開発者でWizardというかなりイケてそうな統計分析パッケージソフトを専業で開発している人みたいです。フリーランスなのかな。考え方も環境もそしてもしかしたら年齢も僕と似ている人なのかもしれない。 「私がJuliaを推す理由」(2014/1/23) 殆どのプログラミング言語の問題はそれらが言語ギークによってつくられていることだ。彼らは私ならほとんど気にしないようことに傾注しがちだ。安全性、型システム、同図像性、などなど。私はそういうものが確かに素晴らしいと思ってはいるが、新しい(訳注:そういう新プログラミング言語とかの)プロジェクトを興味位で漁ってみる際に関心があるのは(1)

    「私がJuliaを推す理由」(翻訳) - アドファイブ日記(ミラー版)
    yass
    yass 2015/06/05
    " 最初にプロトタイプを作ってからマルチコアやSIMDでパフォーマンスを最適化するまでをJuliaだけで出来ちゃうのが現実的なベネフィットなのだ。"
  • Statsite by armon - A C implementation of statsd

    Statsite is a metrics aggregation server. Statsite is based heavily on Etsy's StatsD https://github.com/etsy/statsd, and is wire compatible. Features Multiple metric types Key / Value Gauges Counters Timers Sets Efficient summary metrics for timer data: Mean Min/Max Standard deviation Median, Percentile 95, Percentile 99 Histograms Dynamic set implementation: Exactly counts for small sets HyperLog

    yass
    yass 2014/07/30
    " Statsite is designed to be both highly performant, and very flexible. To achieve this, it implements the stats collection and aggregation in pure C, using libev to be extremely fast. This allows it to handle hundreds of connections, and millions of metrics. "
  • おれのC言語がこんなに遅いわけがない!〜プログラミング言語速度比較パート2 「C」vs「Java」〜 | 株式会社メイプルシステムズ

    こんにちは、西山です。 今日は前回書いた記事 俺の言語がこんなに遅いわけがない!? 〜C, Java, PHP, Python, Rubyによるプログラミング言語 速度比較〜 の続編を書いてみたいと思います。未読の方はこちらを斜め読みしてからのほうがよいかもしれないです。 この記事ですが、「長すぎだよ。3行で頼む。」という方のために3行で書くと、 C プログラムより Java プログラムのほうが実行速度が速いことがありました。 それは、Java の JIT コンパイラが働いて最適化されたネイティブコードが生成・実行されていたからです。 C のほうもコンパイル時にきちんと最適化すれば Java ごときに速さで負けることはありません! という内容です。長い記事にお付き合いくださる方は以下よろしくお願いいたします。 前回のあらすじ・・・ 前回の記事ではいろいろなプログラミング言語で書いたプログラ

    おれのC言語がこんなに遅いわけがない!〜プログラミング言語速度比較パート2 「C」vs「Java」〜 | 株式会社メイプルシステムズ
  • Getting good performance in Go by rewriting parts in C? – Daniel Lemire's blog

  • 軽量・シンプルなHTTPサーバMongooseのインストール方法 · DQNEO日記

    インストール方法(Linux) git clone git://github.com/cesanta/mongoose.git cd mongoose/build/ make unix ソースコードをとってきてmake unixするだけです。 簡単ですね☆ 起動する ./mongoose これだけ!! デフォルトでは8080ポートで、カレントディレクトリがドキュメントルートになります。 ポート番号やドキュメントルートを変更したい場合はオプションで ./mongoose -listening_ports 8888 -document_root /path/to/www などすればOKです。 その他オプション 他にもオプションがいろいろあります。 ヘルプはこんな感じ。 ./mongoose --help Mongoose version 4.2 (c) Sergey Lyubka, built

    軽量・シンプルなHTTPサーバMongooseのインストール方法 · DQNEO日記
    yass
    yass 2013/11/03
    " 実装もシンプルで実体はmongoose.cの1ファイルのみ、ソースコード6000行。 HTTPサーバをちょこっとたてたい、でもApacheやNginxを入れるのは大げさだなあ、というときに便利です。"
  • The Baby Expert | Sophia

    Benefits of Using a Diaper Bag Backpack Every new parent needs the means to carry supplies wherever he or she goes with his/her new baby. It is the primary reason why so many expectant mothers register for a diaper bag of some sort. If you are at that point in your pregnancy with your first child and you are making a baby registry for gifts, consider registering for a diaper bag backpack. Here are

    yass
    yass 2013/09/21
    " Sophia is a modern embeddable key-value database designed for a high load environment. It has unique architecture that was created as a result of research and rethinking of primary algorithmical constraints, associated with a getting popular Log-file based data structures, such as LSM-tree. "
  • How to get C like performance in Java

    Understanding how Core Java really works can help you write simpler, faster applications. OverviewJava has many areas which can be slow. However for every problem there is a solution. Many solutions/hacks require working around Java's protections but if you need low level performance it is still possible. Java makes high level programming simpler and easier at the cost of making low level programm

    yass
    yass 2013/08/16
    " Don't use Selectors / they just add complexity. Most systems can handle 1K-10K threads efficiently / use Direct ByteBuffers and Object recycling techniques to minimise your object creation. By increasing the Eden size you can have an application which rarely GCs."
  • インテル® マス・カーネル・ライブラリー (インテル® MKL) の Java サンプル

    インテル® マス・カーネル・ライブラリー (インテル® MKL) には以下のディレクトリーにさまざまな Java のサンプルが含まれています。 <mkl ディレクトリー>/examples/java. 以下のインテル® MKL 関数用のサンプルが提供されています。 CBLAS の ?gemm、 ?gemv、 および ?dot ファミリー 非クラスター FFT 関数の完全なセット 1 次元の畳み込み/相関用 ESSL1 形式の関数 ユーザー定義のものとファイル・サブルーチンを除く VSL 乱数生成器 (RNG) GetErrorCallBack、 SetErrorCallBack、 および ClearErrorCallBack を除く VML 関数 サンプルのソースは以下のディレクトリーにあります。 <mkl ディレクトリー>/examples/java/examples. サンプルは Ja

    yass
    yass 2013/08/14
    " Java Native Interface (JNI) を使用してインテル® MKL とバインド / ネイティブ float および double データ型は、JNI jfloat および jdouble データ型とそれぞれ同じである必要 / ネイティブ int データ型は、4 バイト長 "
  • SSEとAVXで高次元ベクトルの内積計算を高速化してみた | さかな前線

    世界最速のお魚と言えばカジキ類で,泳ぐ速度は時速100km/hを超えるとか.55ノット程になるのでこれはMk-48魚雷にも匹敵するほどです. 一方ちょっとチートな高速お魚としては,お馴染みトビウオが飛行中に最大70km/hほどに達するとか. 今日はそんな若干チートな高速化のお話(?)ということで,SSE組み込み命令について. SSEやAVXといえばお馴染みSIMD命令で,それをプログラムから構造体と関数の形式で高移殖に記述する方法がSIMD組み込み関数(SIMD Intrinsic)なわけですが,これを使ってごく典型的なベクトルの内積計算を高速化してみました. ベクトルの内積の高速化と言えば星の数ほどもされてる話なわけで,いまさら魚の情報なんか役に立つ気は全くしないのですが,純粋に自分でやらないとわかんない>< ということで, とにかく書いてみよう 効果の程はいかに? を調べてみたくて,や

    yass
    yass 2013/08/13
    " SSEやAVXといえばお馴染みSIMD命令 / これを使ってごく典型的なベクトルの内積計算を高速化 / 最大で10倍のスループットというのは驚き / 8192次元,データ量にして8192*sizeof(float)*2=64KBに達すると,速度差がなくなってますね"
  • Kore - A robust web platform for applications in C and Python

    Kore is a web application platform for writing scalable, concurrent web based processes in C or Python. It is built with a "secure by default" approach. It is fully privilege separated while using strong security features at the operating system level such as seccomp, pledge, unveil and more. Today Kore is used in a variety of applications ranging from high assurance cryptographic devices, machine

    yass
    yass 2013/07/06
  • Mongrel2が面白い - yarbの日記

    クリーンなCで書かれたWebサーバ「Mongrel2」を読んでみた。コードの内外ともにドキュメントはしっかりしているし、関連ブログエントリもあって、非常に勉強になる。何より、毒舌のZed Shawの書く文章は面白くて飽きないのがいい。 例えば、src/adt以下にはユーティリティ関連のライブラリが入っている。伸び縮みするdarray.cや、ディクショナリ、ハッシュテーブル、リストといった車輪の猛発明なところが、Cを使ったデータ構造の基という感じ。リストの実装で、各関数の先頭にassertを並べて条件を満たしているかをチェックすることで、整合性を取るのを呼び出しコード側の責任にしているアプローチになるほどなぁと思った。クライアントコードが変なことしたら、ごっそり落ちるべきってことだろうか。 /* * Insert the node ``new'' into the list immedia

    Mongrel2が面白い - yarbの日記
  • Terra

    Terra is a low-level system programming language that is embedded in and meta-programmed by the Lua programming language: -- This top-level code is plain Lua code. function printhello() -- This is a plain Lua function print("Hello, Lua!") end printhello() -- Terra is backwards compatible with C, we'll use C's io library in our example. C = terralib.includec("stdio.h") -- The keyword 'terra' introd

  • 乱数ライブラリ

    2009年1月31日に64 bit Ubuntu を導入したので、 64 bit gcc での動作確認、性能評価、チューニングの作業をしました。 新しく開発しました(64 bit 非対応) jump.c.html : Xorshift で戻ったり一瞬で相対ジャンプできるプログラム 浮動小数点数に特化した乱数ライブラリ(SSE2対応) zdsfmt.zip : ライブラリ体一式 libZD.zip : エクセルのためのダイナミック・リンク・ライブラリ(DLL)一式 32ビット整数の生成は他のに比べ少し遅くなりますが、浮動小数点数の生成はかなり高速です。 元のメルセンヌ・ツイスタを使った乱数ライブラリ(SSE3対応) zmtrand.zip : ライブラリ体一式 libZMT.zip : エクセルのためのダイナミック・リンク・ライブラリ(DLL)一式 マクロ HAVE_SSE3 を定義して

  • GitHub - maropu/vpacker: A simple integer compression library for C/C++/Java

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    GitHub - maropu/vpacker: A simple integer compression library for C/C++/Java
    yass
    yass 2013/02/27
    "A simple integer compression library for C/C++/Java"
  • MassDAL Code Bank -- Sketches, Frequent Items, Changes

    MassDAL Public Code Bank : Sketches, Frequent Items, Changes (Deltoids) This page is a library of routines in C and Java for data streaming and other massive data set analysis. Currently, these are derived from internal testing routines ("proof of concept" implementations), and so are distributed with no guarantees. In particular, there is relatively little error checking (parameters in range, mem

  • 今日買った本 - 『やさしいアセンブラ入門』

    パソコン好きが知られたからか,会社(部)の図書係になってしまいました。で,早速,「最近の若いのは C/C++ は書けるけどアセンブリが読めなくていかん。ちょっと入門書を買ってきて。」ということに。図書係というのは,要するに雑用係。若いもんばっかが,アセンブリを読めないわけじゃないと思うんだけど。 たしかに,C/C++ プログラマ,なかんづくプロの C/C++ プログラマは,アセンブリを(書けないまでも)読めた方がいい。比べるもんでもないけど,英語よりも必要性が高いんじゃないかと思うくらい。プログラマが直接アセンブリを書くことは稀だけれども,例えば C/C++ でプログラミングしていて次のような問題に当たった向きは,読めるととても便利です。 リリースビルドとデバッグビルドでアプリケーションの挙動が異なる。 Windows で 0xc000001d(illegal instruction)な

  • C言語のポインタはメモリを想像できれば理解できる | 100% Pure NEET

    最近、C言語のポインタは難しいって話をプライベートでして、そのときにした説明をまとめてみた。 コンピュータのメモリがどのようになっているか想像する これはHex Fiendというソフトを使ってあるファイルのHexダンプを見たものだけど、コンピュータのメモリも同じような構造になっているのでこれを使う。類似のソフトはHex Editorなどで検索すれば出てくるだろう。 コンピュータのメモリはこうしたずらずらと数値が記録されたマス目の連続のような構造をしている。Hex Editorなのでこれは16進数で表現されている。1バイトは16進数2桁で表現される。Hex Editorでは普通は1バイトごと、あるいは4バイトごとに区切って表示する。このエディタは一区画ごとに8桁の16進数があるので4バイトごと。 ポインタを使うのに重要なのはたぶん、こうしたメモリの内容を頭の中で思い浮かべることができることだ

    yass
    yass 2013/01/06
  • 初めてのC言語で『30日でできる!OS自作入門』の通りに初めてのOSを作ってみた - 三等兵

    30日でできる! OS自作入門 出版社 : 毎日コミュニケーションズ 発行日 : 2006/3/1 良いです。アカデミックの匂いが良い意味で全くしない。その上での実践的なは日語で他に無いと思います。ガチムチアカデミックの批判にあえて真っ向勝負してるような意欲作です。 正しい知識だの用語だのそんなもんはどうでもいいから手を動かしてやってまえみたいな感じで。こういうのは頭いい人たちから批判されやすいですね。俗物な私にはぴったりでしたが。 書はWindows用のサンプルしかないんですがMac用に整えたので、それ公開するついでに思ったことつらつらと書いときます。 開発環境 Mac サンプルがWindows用なのでいろいろMac仕様にしなきゃいけない(後述) テキストエディタ EmacsだのVimだのなんでもいいので適当に用意 バイナリエディタ Macだと0xEDが良い http://www

    初めてのC言語で『30日でできる!OS自作入門』の通りに初めてのOSを作ってみた - 三等兵
    yass
    yass 2013/01/06