688 lines
59 KiB
Plaintext
688 lines
59 KiB
Plaintext
{
|
|
"cells": [
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 1,
|
|
"metadata": {
|
|
"collapsed": false
|
|
},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"[Plots.jl] Default backend: immerse\n",
|
|
"[Plots.jl] Switched to backend: immerse\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"using Plots; immerse!()\n",
|
|
"plotDefault!(:size, (500,300));"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 27,
|
|
"metadata": {
|
|
"collapsed": false,
|
|
"scrolled": false
|
|
},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"run_push_test (generic function with 1 method)"
|
|
]
|
|
},
|
|
"execution_count": 27,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"# a couple things are happening here... we're pushing new \n",
|
|
"# data to our series, and redrawing with gui()\n",
|
|
"function add_to_plot(plt, rng)\n",
|
|
" for x in rng\n",
|
|
" push!(plt, x, [randn(), sin(x)])\n",
|
|
" # same as:\n",
|
|
" #push!(plt, 1, x, randn())\n",
|
|
" #push!(plt, 2, x, sin(x))\n",
|
|
" #gui(); sleep(0.005)\n",
|
|
" end\n",
|
|
" gui()\n",
|
|
"end\n",
|
|
"\n",
|
|
"function run_push_test(batchsize, numbatch)\n",
|
|
" fullrng = linspace(0.2, 2π, numbatch+1)\n",
|
|
" println(\"Testing batchsize=$batchsize numbatch=$numbatch points\")\n",
|
|
" plt = plot([0,0.1], Any[randn(2),sin], t=[:sticks,:path], w=2)\n",
|
|
" \n",
|
|
" allms = Float64[]\n",
|
|
" for i in 1:numbatch\n",
|
|
" rng = linspace(fullrng[i], fullrng[i+1], batchsize)\n",
|
|
" t = @elapsed add_to_plot(plt, rng)\n",
|
|
" millis = 1000*t\n",
|
|
" push!(allms, millis)\n",
|
|
" @printf \"Millis per update: %1.3f\\n\" millis\n",
|
|
" end\n",
|
|
" allms\n",
|
|
"end"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 28,
|
|
"metadata": {
|
|
"collapsed": false
|
|
},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"Testing batchsize=500 numbatch=500 points\n",
|
|
"Millis per update: 40.079\n",
|
|
"Millis per update: 15.122\n",
|
|
"Millis per update: 16.182\n",
|
|
"Millis per update: 16.608\n",
|
|
"Millis per update: 18.089\n",
|
|
"Millis per update: 31.218\n",
|
|
"Millis per update: 19.448\n",
|
|
"Millis per update: 21.146\n",
|
|
"Millis per update: 31.730\n",
|
|
"Millis per update: 27.839\n",
|
|
"Millis per update: 32.360\n",
|
|
"Millis per update: 27.309\n",
|
|
"Millis per update: 36.093\n",
|
|
"Millis per update: 41.046\n",
|
|
"Millis per update: 32.735\n",
|
|
"Millis per update: 40.209\n",
|
|
"Millis per update: 47.373\n",
|
|
"Millis per update: 37.350\n",
|
|
"Millis per update: 46.302\n",
|
|
"Millis per update: 49.219\n",
|
|
"Millis per update: 48.802\n",
|
|
"Millis per update: 52.275\n",
|
|
"Millis per update: 54.914\n",
|
|
"Millis per update: 54.557\n",
|
|
"Millis per update: 59.209\n",
|
|
"Millis per update: 57.524\n",
|
|
"Millis per update: 61.462\n",
|
|
"Millis per update: 68.913\n",
|
|
"Millis per update: 68.046\n",
|
|
"Millis per update: 66.074\n",
|
|
"Millis per update: 71.676\n",
|
|
"Millis per update: 78.779\n",
|
|
"Millis per update: 74.526\n",
|
|
"Millis per update: 81.386\n",
|
|
"Millis per update: 80.201\n",
|
|
"Millis per update: 88.943\n",
|
|
"Millis per update: 82.540\n",
|
|
"Millis per update: 94.947\n",
|
|
"Millis per update: 88.878\n",
|
|
"Millis per update: 102.459\n",
|
|
"Millis per update: 104.964\n",
|
|
"Millis per update: 124.933\n",
|
|
"Millis per update: 148.606\n",
|
|
"Millis per update: 103.578\n",
|
|
"Millis per update: 114.685\n",
|
|
"Millis per update: 107.555\n",
|
|
"Millis per update: 108.390\n",
|
|
"Millis per update: 121.361\n",
|
|
"Millis per update: 114.242\n",
|
|
"Millis per update: 119.176\n",
|
|
"Millis per update: 120.606\n",
|
|
"Millis per update: 119.898\n",
|
|
"Millis per update: 202.169\n",
|
|
"Millis per update: 124.070\n",
|
|
"Millis per update: 129.513\n",
|
|
"Millis per update: 129.568\n",
|
|
"Millis per update: 147.862\n",
|
|
"Millis per update: 129.621\n",
|
|
"Millis per update: 142.987\n",
|
|
"Millis per update: 135.256\n",
|
|
"Millis per update: 214.639\n",
|
|
"Millis per update: 136.083\n",
|
|
"Millis per update: 146.857\n",
|
|
"Millis per update: 154.380\n",
|
|
"Millis per update: 145.505\n",
|
|
"Millis per update: 155.451\n",
|
|
"Millis per update: 219.054\n",
|
|
"Millis per update: 157.478\n",
|
|
"Millis per update: 165.738\n",
|
|
"Millis per update: 162.971\n",
|
|
"Millis per update: 153.352\n",
|
|
"Millis per update: 172.872\n",
|
|
"Millis per update: 224.378\n",
|
|
"Millis per update: 172.566\n",
|
|
"Millis per update: 172.982\n",
|
|
"Millis per update: 170.956\n",
|
|
"Millis per update: 188.999\n",
|
|
"Millis per update: 229.639\n",
|
|
"Millis per update: 190.843\n",
|
|
"Millis per update: 185.880\n",
|
|
"Millis per update: 188.511\n",
|
|
"Millis per update: 260.719\n",
|
|
"Millis per update: 193.146\n",
|
|
"Millis per update: 181.418\n",
|
|
"Millis per update: 200.407\n",
|
|
"Millis per update: 214.102\n",
|
|
"Millis per update: 236.842\n",
|
|
"Millis per update: 197.742\n",
|
|
"Millis per update: 199.637\n",
|
|
"Millis per update: 212.202\n",
|
|
"Millis per update: 265.819\n",
|
|
"Millis per update: 204.828\n",
|
|
"Millis per update: 212.666\n",
|
|
"Millis per update: 217.440\n",
|
|
"Millis per update: 257.523\n",
|
|
"Millis per update: 216.784\n",
|
|
"Millis per update: 219.602\n",
|
|
"Millis per update: 284.490\n",
|
|
"Millis per update: 237.295\n",
|
|
"Millis per update: 228.150\n",
|
|
"Millis per update: 234.724\n",
|
|
"Millis per update: 289.721\n",
|
|
"Millis per update: 220.250\n",
|
|
"Millis per update: 245.152\n",
|
|
"Millis per update: 233.189\n",
|
|
"Millis per update: 292.644\n",
|
|
"Millis per update: 243.510\n",
|
|
"Millis per update: 237.983\n",
|
|
"Millis per update: 324.078\n",
|
|
"Millis per update: 233.940\n",
|
|
"Millis per update: 258.735\n",
|
|
"Millis per update: 254.909\n",
|
|
"Millis per update: 313.590\n",
|
|
"Millis per update: 255.737\n",
|
|
"Millis per update: 253.397\n",
|
|
"Millis per update: 317.352\n",
|
|
"Millis per update: 260.451\n",
|
|
"Millis per update: 284.313\n",
|
|
"Millis per update: 310.963\n",
|
|
"Millis per update: 268.508\n",
|
|
"Millis per update: 285.613\n",
|
|
"Millis per update: 317.834\n",
|
|
"Millis per update: 269.258\n",
|
|
"Millis per update: 290.477\n",
|
|
"Millis per update: 321.236\n",
|
|
"Millis per update: 279.021\n",
|
|
"Millis per update: 342.981\n",
|
|
"Millis per update: 282.397\n",
|
|
"Millis per update: 305.791\n",
|
|
"Millis per update: 366.554\n",
|
|
"Millis per update: 279.583\n",
|
|
"Millis per update: 318.945\n",
|
|
"Millis per update: 386.435\n",
|
|
"Millis per update: 299.349\n",
|
|
"Millis per update: 307.845\n",
|
|
"Millis per update: 364.658\n",
|
|
"Millis per update: 313.293\n",
|
|
"Millis per update: 316.571\n",
|
|
"Millis per update: 383.405\n",
|
|
"Millis per update: 313.655\n",
|
|
"Millis per update: 332.412\n",
|
|
"Millis per update: 366.875\n",
|
|
"Millis per update: 327.799\n",
|
|
"Millis per update: 400.998\n",
|
|
"Millis per update: 327.366\n",
|
|
"Millis per update: 355.611\n",
|
|
"Millis per update: 372.795\n",
|
|
"Millis per update: 331.835\n",
|
|
"Millis per update: 400.161\n",
|
|
"Millis per update: 371.906\n",
|
|
"Millis per update: 361.365\n",
|
|
"Millis per update: 386.242\n",
|
|
"Millis per update: 330.389\n",
|
|
"Millis per update: 413.712\n",
|
|
"Millis per update: 347.514\n",
|
|
"Millis per update: 410.657\n",
|
|
"Millis per update: 355.059\n",
|
|
"Millis per update: 366.603\n",
|
|
"Millis per update: 398.441\n",
|
|
"Millis per update: 375.756\n",
|
|
"Millis per update: 412.770\n",
|
|
"Millis per update: 389.550\n",
|
|
"Millis per update: 393.610\n",
|
|
"Millis per update: 384.478\n",
|
|
"Millis per update: 410.870\n",
|
|
"Millis per update: 446.921\n",
|
|
"Millis per update: 365.077\n",
|
|
"Millis per update: 402.742\n",
|
|
"Millis per update: 418.117\n",
|
|
"Millis per update: 405.588\n",
|
|
"Millis per update: 439.606\n",
|
|
"Millis per update: 403.680\n",
|
|
"Millis per update: 451.768\n",
|
|
"Millis per update: 400.921\n",
|
|
"Millis per update: 443.074\n",
|
|
"Millis per update: 468.352\n",
|
|
"Millis per update: 395.566\n",
|
|
"Millis per update: 462.935\n",
|
|
"Millis per update: 402.479\n",
|
|
"Millis per update: 479.039\n",
|
|
"Millis per update: 397.780\n",
|
|
"Millis per update: 486.048\n",
|
|
"Millis per update: 397.946\n",
|
|
"Millis per update: 495.390\n",
|
|
"Millis per update: 413.238\n",
|
|
"Millis per update: 475.984\n",
|
|
"Millis per update: 415.335\n",
|
|
"Millis per update: 485.768\n",
|
|
"Millis per update: 431.329\n",
|
|
"Millis per update: 491.080\n",
|
|
"Millis per update: 501.168\n",
|
|
"Millis per update: 446.517\n",
|
|
"Millis per update: 512.504\n",
|
|
"Millis per update: 437.698\n",
|
|
"Millis per update: 500.080\n",
|
|
"Millis per update: 509.071\n",
|
|
"Millis per update: 455.196\n",
|
|
"Millis per update: 516.313\n",
|
|
"Millis per update: 438.826\n",
|
|
"Millis per update: 523.726\n",
|
|
"Millis per update: 535.282\n",
|
|
"Millis per update: 480.517\n",
|
|
"Millis per update: 517.518\n",
|
|
"Millis per update: 442.941\n",
|
|
"Millis per update: 532.379\n",
|
|
"Millis per update: 468.580\n",
|
|
"Millis per update: 511.796\n",
|
|
"Millis per update: 521.406\n",
|
|
"Millis per update: 475.635\n",
|
|
"Millis per update: 530.662\n",
|
|
"Millis per update: 539.082\n",
|
|
"Millis per update: 481.280\n",
|
|
"Millis per update: 539.149\n",
|
|
"Millis per update: 474.253\n",
|
|
"Millis per update: 547.024\n",
|
|
"Millis per update: 555.700\n",
|
|
"Millis per update: 495.269\n",
|
|
"Millis per update: 549.336\n",
|
|
"Millis per update: 483.558\n",
|
|
"Millis per update: 548.269\n",
|
|
"Millis per update: 559.410\n",
|
|
"Millis per update: 501.521\n",
|
|
"Millis per update: 543.542\n",
|
|
"Millis per update: 566.739\n",
|
|
"Millis per update: 568.827\n",
|
|
"Millis per update: 500.299\n",
|
|
"Millis per update: 591.874\n",
|
|
"Millis per update: 571.644\n",
|
|
"Millis per update: 510.230\n",
|
|
"Millis per update: 587.358\n",
|
|
"Millis per update: 570.382\n",
|
|
"Millis per update: 528.155\n",
|
|
"Millis per update: 576.230\n",
|
|
"Millis per update: 597.233\n",
|
|
"Millis per update: 516.047\n",
|
|
"Millis per update: 595.529\n",
|
|
"Millis per update: 598.978\n",
|
|
"Millis per update: 515.443\n",
|
|
"Millis per update: 597.611\n",
|
|
"Millis per update: 598.083\n",
|
|
"Millis per update: 614.017\n",
|
|
"Millis per update: 540.431\n",
|
|
"Millis per update: 613.225\n",
|
|
"Millis per update: 617.521\n",
|
|
"Millis per update: 561.601\n",
|
|
"Millis per update: 609.322\n",
|
|
"Millis per update: 617.024\n",
|
|
"Millis per update: 625.480\n",
|
|
"Millis per update: 556.063\n",
|
|
"Millis per update: 621.717\n",
|
|
"Millis per update: 630.989\n",
|
|
"Millis per update: 632.941\n",
|
|
"Millis per update: 565.696\n",
|
|
"Millis per update: 618.320\n",
|
|
"Millis per update: 637.972\n",
|
|
"Millis per update: 634.088\n",
|
|
"Millis per update: 589.129\n",
|
|
"Millis per update: 636.079\n",
|
|
"Millis per update: 645.938\n",
|
|
"Millis per update: 662.098\n",
|
|
"Millis per update: 576.250\n",
|
|
"Millis per update: 647.832\n",
|
|
"Millis per update: 657.443\n",
|
|
"Millis per update: 662.573\n",
|
|
"Millis per update: 580.773\n",
|
|
"Millis per update: 655.802\n",
|
|
"Millis per update: 681.735\n",
|
|
"Millis per update: 684.246\n",
|
|
"Millis per update: 606.617\n",
|
|
"Millis per update: 661.684\n",
|
|
"Millis per update: 673.561\n",
|
|
"Millis per update: 680.103\n",
|
|
"Millis per update: 621.362\n",
|
|
"Millis per update: 700.976\n",
|
|
"Millis per update: 710.052\n",
|
|
"Millis per update: 705.639\n",
|
|
"Millis per update: 628.987\n",
|
|
"Millis per update: 781.120\n",
|
|
"Millis per update: 693.994\n",
|
|
"Millis per update: 717.146\n",
|
|
"Millis per update: 710.565\n",
|
|
"Millis per update: 650.611\n",
|
|
"Millis per update: 680.533\n",
|
|
"Millis per update: 739.839\n",
|
|
"Millis per update: 719.294\n",
|
|
"Millis per update: 729.258\n",
|
|
"Millis per update: 655.750\n",
|
|
"Millis per update: 710.682\n",
|
|
"Millis per update: 714.100\n",
|
|
"Millis per update: 727.064\n",
|
|
"Millis per update: 782.232\n",
|
|
"Millis per update: 747.916\n",
|
|
"Millis per update: 678.841\n",
|
|
"Millis per update: 723.584\n",
|
|
"Millis per update: 731.830\n",
|
|
"Millis per update: 728.115\n",
|
|
"Millis per update: 728.144\n",
|
|
"Millis per update: 741.090\n",
|
|
"Millis per update: 685.517\n",
|
|
"Millis per update: 729.180\n",
|
|
"Millis per update: 840.365\n",
|
|
"Millis per update: 735.661\n",
|
|
"Millis per update: 756.329\n",
|
|
"Millis per update: 745.360\n",
|
|
"Millis per update: 758.364\n",
|
|
"Millis per update: 748.105\n",
|
|
"Millis per update: 762.918\n",
|
|
"Millis per update: 752.139\n",
|
|
"Millis per update: 842.033\n",
|
|
"Millis per update: 805.079\n",
|
|
"Millis per update: 753.103\n",
|
|
"Millis per update: 775.339\n",
|
|
"Millis per update: 774.057\n",
|
|
"Millis per update: 784.325\n",
|
|
"Millis per update: 792.441\n",
|
|
"Millis per update: 769.667\n",
|
|
"Millis per update: 806.224\n",
|
|
"Millis per update: 840.546\n",
|
|
"Millis per update: 798.716\n",
|
|
"Millis per update: 788.659\n",
|
|
"Millis per update: 879.488\n",
|
|
"Millis per update: 812.789\n",
|
|
"Millis per update: 822.176\n",
|
|
"Millis per update: 818.117\n",
|
|
"Millis per update: 815.853\n",
|
|
"Millis per update: 896.890\n",
|
|
"Millis per update: 823.729\n",
|
|
"Millis per update: 823.831\n",
|
|
"Millis per update: 818.085\n",
|
|
"Millis per update: 809.020\n",
|
|
"Millis per update: 838.358\n",
|
|
"Millis per update: 809.967\n",
|
|
"Millis per update: 1083.802\n",
|
|
"Millis per update: 806.359\n",
|
|
"Millis per update: 832.287\n",
|
|
"Millis per update: 900.039\n",
|
|
"Millis per update: 810.210\n",
|
|
"Millis per update: 992.175\n",
|
|
"Millis per update: 872.565\n",
|
|
"Millis per update: 835.626\n",
|
|
"Millis per update: 873.217\n",
|
|
"Millis per update: 844.381\n",
|
|
"Millis per update: 842.556\n",
|
|
"Millis per update: 849.976\n",
|
|
"Millis per update: 853.396\n",
|
|
"Millis per update: 850.900\n",
|
|
"Millis per update: 850.537\n",
|
|
"Millis per update: 851.915\n",
|
|
"Millis per update: 848.761\n",
|
|
"Millis per update: 863.544\n",
|
|
"Millis per update: 856.996\n",
|
|
"Millis per update: 859.326\n",
|
|
"Millis per update: 869.912\n",
|
|
"Millis per update: 861.448\n",
|
|
"Millis per update: 873.688\n",
|
|
"Millis per update: 864.031\n",
|
|
"Millis per update: 876.705\n",
|
|
"Millis per update: 866.997\n",
|
|
"Millis per update: 884.235\n",
|
|
"Millis per update: 886.819\n",
|
|
"Millis per update: 871.821\n",
|
|
"Millis per update: 964.656\n",
|
|
"Millis per update: 889.583\n",
|
|
"Millis per update: 1204.111\n",
|
|
"Millis per update: 897.775\n",
|
|
"Millis per update: 880.445\n",
|
|
"Millis per update: 897.483\n",
|
|
"Millis per update: 896.532\n",
|
|
"Millis per update: 917.068\n",
|
|
"Millis per update: 898.846\n",
|
|
"Millis per update: 903.891\n",
|
|
"Millis per update: 904.401\n",
|
|
"Millis per update: 900.386\n",
|
|
"Millis per update: 899.457\n",
|
|
"Millis per update: 919.003\n",
|
|
"Millis per update: 908.421\n",
|
|
"Millis per update: 1038.832\n",
|
|
"Millis per update: 922.143\n",
|
|
"Millis per update: 911.575\n",
|
|
"Millis per update: 928.621\n",
|
|
"Millis per update: 921.641\n",
|
|
"Millis per update: 934.345\n",
|
|
"Millis per update: 922.692\n",
|
|
"Millis per update: 942.637\n",
|
|
"Millis per update: 926.641\n",
|
|
"Millis per update: 944.272\n",
|
|
"Millis per update: 949.661\n",
|
|
"Millis per update: 948.564\n",
|
|
"Millis per update: 985.628\n",
|
|
"Millis per update: 931.756\n",
|
|
"Millis per update: 948.746\n",
|
|
"Millis per update: 947.677\n",
|
|
"Millis per update: 951.006\n",
|
|
"Millis per update: 952.858\n",
|
|
"Millis per update: 951.719\n",
|
|
"Millis per update: 970.697\n",
|
|
"Millis per update: 951.000\n",
|
|
"Millis per update: 956.591\n",
|
|
"Millis per update: 1304.193\n",
|
|
"Millis per update: 977.239\n",
|
|
"Millis per update: 966.052\n",
|
|
"Millis per update: 965.438\n",
|
|
"Millis per update: 985.416\n",
|
|
"Millis per update: 964.756\n",
|
|
"Millis per update: 968.825\n",
|
|
"Millis per update: 1023.739\n",
|
|
"Millis per update: 990.255\n",
|
|
"Millis per update: 972.544\n",
|
|
"Millis per update: 990.917\n",
|
|
"Millis per update: 1093.249\n",
|
|
"Millis per update: 977.054\n",
|
|
"Millis per update: 996.750\n",
|
|
"Millis per update: 1068.171\n",
|
|
"Millis per update: 1360.354\n",
|
|
"Millis per update: 996.132\n",
|
|
"Millis per update: 1010.615\n",
|
|
"Millis per update: 999.812\n",
|
|
"Millis per update: 1015.013\n",
|
|
"Millis per update: 1017.715\n",
|
|
"Millis per update: 1015.932\n",
|
|
"Millis per update: 1028.891\n",
|
|
"Millis per update: 1025.914\n",
|
|
"Millis per update: 1321.139\n",
|
|
"Millis per update: 1019.076\n",
|
|
"Millis per update: 1045.532\n",
|
|
"Millis per update: 1033.461\n",
|
|
"Millis per update: 1240.954\n",
|
|
"Millis per update: 1045.886\n",
|
|
"Millis per update: 1022.617\n",
|
|
"Millis per update: 1059.148\n",
|
|
"Millis per update: 1028.750\n",
|
|
"Millis per update: 1124.544\n",
|
|
"Millis per update: 1053.042\n",
|
|
"Millis per update: 1031.257\n",
|
|
"Millis per update: 1068.257\n",
|
|
"Millis per update: 1058.699\n",
|
|
"Millis per update: 1321.793\n",
|
|
"Millis per update: 1059.827\n",
|
|
"Millis per update: 1056.147\n",
|
|
"Millis per update: 1071.720\n",
|
|
"Millis per update: 1141.250\n",
|
|
"Millis per update: 1079.285\n",
|
|
"Millis per update: 1066.421\n",
|
|
"Millis per update: 1085.494\n",
|
|
"Millis per update: 1578.593\n",
|
|
"Millis per update: 1159.729\n",
|
|
"Millis per update: 1088.039\n",
|
|
"Millis per update: 1100.801\n",
|
|
"Millis per update: 1134.792\n",
|
|
"Millis per update: 1146.770\n",
|
|
"Millis per update: 1095.414\n",
|
|
"Millis per update: 1108.305\n",
|
|
"Millis per update: 1145.936\n",
|
|
"Millis per update: 1093.877\n",
|
|
"Millis per update: 1095.688\n",
|
|
"Millis per update: 1176.535\n",
|
|
"Millis per update: 1110.820\n",
|
|
"Millis per update: 1085.597\n",
|
|
"Millis per update: 1225.630\n",
|
|
"Millis per update: 1359.241\n",
|
|
"Millis per update: 1222.735\n",
|
|
"Millis per update: 1121.657\n",
|
|
"Millis per update: 1141.889\n",
|
|
"Millis per update: 1175.603\n",
|
|
"Millis per update: 1539.905\n",
|
|
"Millis per update: 1145.917\n",
|
|
"Millis per update: 1186.157\n",
|
|
"Millis per update: 1131.316\n",
|
|
"Millis per update: 1184.654\n",
|
|
"Millis per update: 1232.530\n",
|
|
"Millis per update: 1190.413\n",
|
|
"Millis per update: 1253.534\n",
|
|
"Millis per update: 1155.714\n",
|
|
"Millis per update: 1150.108\n",
|
|
"Millis per update: 1180.821\n",
|
|
"Millis per update: 1149.255\n",
|
|
"Millis per update: 1142.577\n",
|
|
"Millis per update: 1188.123\n",
|
|
"Millis per update: 1152.083\n",
|
|
"Millis per update: 1229.459\n",
|
|
"Millis per update: 1157.650\n",
|
|
"Millis per update: 1235.182\n",
|
|
"Millis per update: 1167.174\n",
|
|
"Millis per update: 1263.277\n",
|
|
"Millis per update: 1165.159\n",
|
|
"Millis per update: 1240.314\n",
|
|
"Millis per update: 1167.535\n",
|
|
"Millis per update: 1269.960\n",
|
|
"Millis per update: 1175.788\n",
|
|
"Millis per update: 1269.061\n",
|
|
"Millis per update: 1175.115\n",
|
|
"Millis per update: 1274.390\n",
|
|
"Millis per update: 1181.124\n",
|
|
"Millis per update: 1286.103\n",
|
|
"Millis per update: 1182.513\n",
|
|
"Millis per update: 1290.592\n",
|
|
"Millis per update: 1201.793\n",
|
|
"Millis per update: 1284.046\n",
|
|
"Millis per update: 1189.894\n",
|
|
"Millis per update: 1286"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"batchsize, numbatch = 500, 500\n",
|
|
"ms = run_push_test(batchsize, numbatch);"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 29,
|
|
"metadata": {
|
|
"collapsed": false
|
|
},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"image/png": "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",
|
|
"text/plain": [
|
|
"Plot{Plots.ImmersePackage() n=1}"
|
|
]
|
|
},
|
|
"execution_count": 29,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
},
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
".258\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"plot((1:numbatch)*batchsize, ms, xlab=\"Number of Points\", ylab=\"Millis per update\", leg=false)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"metadata": {
|
|
"collapsed": false
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"plt = plot(rand(10,2))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"metadata": {
|
|
"collapsed": false
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"# append 3 points to the second series\n",
|
|
"append!(plt, 2,rand(3))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"metadata": {
|
|
"collapsed": false
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"# pushing a vector will add one to each series\n",
|
|
"for i in 1:100\n",
|
|
" push!(plt, rand(2))\n",
|
|
"end\n",
|
|
"plt"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"metadata": {
|
|
"collapsed": true
|
|
},
|
|
"outputs": [],
|
|
"source": []
|
|
}
|
|
],
|
|
"metadata": {
|
|
"kernelspec": {
|
|
"display_name": "Julia 0.4.0-rc1",
|
|
"language": "julia",
|
|
"name": "julia-0.4"
|
|
},
|
|
"language_info": {
|
|
"file_extension": ".jl",
|
|
"mimetype": "application/julia",
|
|
"name": "julia",
|
|
"version": "0.4.0"
|
|
}
|
|
},
|
|
"nbformat": 4,
|
|
"nbformat_minor": 0
|
|
}
|