今回容量の大きい(32.1 MB)のxmlデータを使うことがあったので、そのときに利用したワザ?についてメモしておきます。
ファイルの分割
大きすぎてvim等で開けない場合ファイルを分割することで容量を軽くしてエディタで開けるようにする。
$ split -l 10000 railRoad.xml railRoad.xml.
これは10000行ごとにrailRoad.xml.a、railRoad.xml.b、railRoad.xml.cとファイルが分割されていく。
仮想マシン、PHPへのメモリの割り当てを増やす
vagrantで実行していたのですがvagrant自体にはデフォルトで458MBが割り当てられています。
$ vagrant ssh
$ free -m
total used free shared buffers cached
Mem: 458 436 22 0 12 47
-/+ buffers/cache: 376 82
Swap: 2559 724 1835
なのでまずvagrant自体のメモリの割り当てを増やしてやります。設定はVagrantfile内で行います。
Vagrantfile
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
# ...
config.vm.provider "virtualbox" do |vb|
#...
# Use VBoxManage to customize the VM. For example to change memory:
vb.customize ["modifyvm", :id, "--memory", "1024"]
end
#...
end
したらvagrantの設定を有効にします。
$ vagrant reload
次にPHPへのメモリの割り当てを増やします。
php.ini
memory_limit = 512M
PHPの設定を有効にします。
$ sudo service httpd restart
これでメモリの割り当てが増えました。感覚として倍々に増やしていってあまりにもメモリを食うようであれば、処理の仕方の変更を検討する、という感じで進めました。