Ubuntu 18.04にJava11をインストール

sudo add-apt-repository ppa:linuxuprising/java
sudo apt-get install oracle-java11-installer

言語間の速度比較

お知らせ

この記事の最新版 (2023/5版) が下記にあります。こちらもご参照ください。

記事

シングルスレッドでほぼCPUだけを使う単純なアルゴリズムで1億までの素数を求めるプログラムを作成。その実行時間と最大使用メモリ量を測定した。 ソースコードはここに保存。
言語 時間 (sec) 最大使用物理メモリ(MiB) 算出素数格納コンテナ 補足情報 感想
C 12.6 24.1 固定長配列 gcc 8.3.0
最適化-O3
-
C++ 64.8 36.0 std::vector gcc 7.3.0
最適化なし(-O0でビルド)
-
C++ 12.7 36.0 std::vector gcc 7.3.0
最適化(-O3でビルド)
最適化するとやはりかなり速くなる。メモリ使用量も圧倒的にすくない
JAVA 17.2 215.5 ArrayList OpenJDK 10.0.2 C/C++の約1.5倍の実行時間。これまでの経験ともだいたい整合する
Kotlin 17.2 236.5 List Kotlin 1.3.61 Javaと同等。コードの書きやすさを考えると悪くない選択肢
Scala 20.1 2023.0 mutable.ArrayBuffer Scala 2.11.12 速度面ではJavaと比較して少し劣る程度だが、メモリ使用量がJavaの約10倍、C++の100倍近い。
Golang 49.2 136.2 slice go1.11.6 予想より速くない。メモリ使用量もJavaの半分程度で、この結果だけだと使いみちが中途半端となるかも。
Node.js 23.2 184.8 Array v8.10.0 JavaやScalaに匹敵。予想より速い。メモリ使用量もそれほど多くない。
PHP 151.2 196.7 array PHP 7.2.10 特に良いところもないような。無理に使うような言語ではないと思う。
Python 451.8 3235.2 list 2.7 圧倒的に遅い。メモリ使用量も半端ない。でも、憎めないやつ。ほんとはこういう用途ではNumPyとか使うべきなのかな。後日numbaでも試してみたい。
Python3 592.8 238.3 list 3.6.7 メモリ使用量はPython2に比べて大幅にすくないものの、実行速度がさらに遅くなった

評価環境

  • Intel Core i7 8559U (2.7GHz)
  • DDR4 2400MHz 32GiB
  • Ubuntu 18.04 LTS

tcpdumpでVXLANパケットを表示する

少し安直だけど。。。もっとスマートな方法はないか。
# tcpdump -i tun0 -l | grep -i vxlan 

VNCをXserverにxfceを起動する

1: vnc4serverをインストール 2:.vnc/xstartupに以下を記載
#!/bin/sh
startxfce4 &
3:.vnc/xstartupに実行権限を付与 3: 以下のようなコマンドでVNCサーバーを起動
vncserver :0 -geometry 1280x800

xcodeのバージョンの切り替え方

環境変数での例
export DEVELOPER_DIR=/Applications/Xcode-9.4.app/Contents/Developer
確認方法
xcode-select -print-path
その他の方法
sudo xcode-select -s /Applications/Xcode-9.4.app/Contents/Developer
Xcodeは以下からダウンロード可能
https://developer.apple.com/download/more/

Diskのblock, sectorサイズなどの大きさ

/proc/partitionsのblockは、1024B単位
# cat /proc/partitions 
major minor  #blocks  name

   8        0  117220824 sda
   8        1       1024 sda1
   8        2    2097152 sda2
   8        3   16777216 sda3
   8        4   16777216 sda4
   8        5   16777216 sda5
   8        6   64788480 sda6
   8       16 3907018584 sdb
gdiskのsectorは、下記で、青字にしたように表示されているが512B単位が多い
Disk /dev/sda: 234441648 sectors, 111.8 GiB
Model: KINGSTON SV300S3
Sector size (logical/physical): 512/512 bytes
Disk identifier (GUID): 877EDACD-6579-48A8-ACBD-7F4DAC5E7040
Partition table holds up to 128 entries
Main partition table begins at sector 2 and ends at sector 33
First usable sector is 34, last usable sector is 234441614
Partitions will be aligned on 2048-sector boundaries
Total free space is 4973 sectors (2.4 MiB)

Number  Start (sector)    End (sector)  Size       Code  Name
   1            2048            4095   1024.0 KiB  EF02  
   2            4096         4198399   2.0 GiB     8300  
   3         4198400        37752831   16.0 GiB    8300  
   4        37752832        71307263   16.0 GiB    8300  
   5        71307264       104861695   16.0 GiB    8200  
   6       104861696       234438655   61.8 GiB    8300