{ "cells": [ { "cell_type": "code", "execution_count": 1, "id": "d78c53c7-90eb-4b69-bfaa-e42ed49a0340", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Julia Version 1.8.5\n", "Commit 17cfb8e65e (2023-01-08 06:45 UTC)\n", "Platform Info:\n", " OS: Windows (x86_64-w64-mingw32)\n", " CPU: 12 × Intel(R) Core(TM) i7-10750H CPU @ 2.60GHz\n", " WORD_SIZE: 64\n", " LIBM: libopenlibm\n", " LLVM: libLLVM-13.0.1 (ORCJIT, skylake)\n", " Threads: 12 on 12 virtual cores\n", "Environment:\n", " JULIA_DEPOT_PATH = D:\\.julia\n", " JULIA_NUM_PRECOMPILE_TASKS = 4\n", " JULIA_NUM_THREADS = 12\n", " JULIA_PYTHONCALL_EXE = D:\\.julia\\conda\\3\\python.exe\n" ] } ], "source": [ "versioninfo()" ] }, { "cell_type": "code", "execution_count": 2, "id": "7bce322c-a2ef-4c92-bc87-0dbbcac486af", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " 26.912644 seconds (66.66 M allocations: 3.975 GiB, 5.36% gc time, 2.58% compilation time: 60% of which was recompilation)\n" ] } ], "source": [ "@time using CairoMakie" ] }, { "cell_type": "code", "execution_count": 3, "id": "c87d7969-7248-49e2-bf1f-ba081d3a6d01", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " 14.834003 seconds (5.15 M allocations: 271.913 MiB, 0.33% gc time, 99.62% compilation time: 10% of which was recompilation)\n" ] }, { "data": { "image/png": "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2nT9+vWTJ0++cePGpEmTii6rIZyJicmSJUuuXr06aNCgBQsWNGnSZNOmTaKjoEoYWAAAAc6dO/fFF19MnDixQ4cOly9fXrhwoRJeq6xOnTpr1qz55ZdfzMzMhgwZ0qtXL94xxEdiYAEAylVOTs6MGTPatm2blJT0448/7tq1q0GDBqKj3qdt27anTp0KCQn5z3/+06JFi5iYmMLCQtFRUHYMLABA+bl8+XLbtm39/f1HjBjxxx9/2Nraii76KFpaWu7u7pcuXWrbtq2jo2OfPn2SkpJER0GpMbAAAOUkMjLy888/f/z48a5du2JjY5XwPcH3q1u37sGDB8PCwg4fPmxpaXngwAHRRVBeDCwAQJnLyMiws7NzcXHp1KlTQkJC7969RReVkFQqLbpoVvXq1Xv16jVjxoz8/HzRUVBGDCwAQNn6888/v/jii61bty5atGjPnj1qcP/jZs2anTp1asyYMf7+/t27d3/27JnoIigdBhYAoAzt3LmzXbt2KSkpP/30k7e3dwlumqucKlSoEBUVtXr16pMnT7Zp0+b8+fOii6BcGFgAgLKycOFCW1vbpk2b/vbbbx06dBCdo3gjRow4ceJEYWFh+/btt27dKjoHSoSBBQBQvNzcXAcHh2nTpg0ZMuTYsWO1atUSXVRWrKyszpw507p160GDBi1evFh0DpQFAwsAoGDp6em9evVatWrV7Nmz4+Li9PX1RReVLVNT059++snOzm7KlCkuLi587B0SiURbdAAAQK0kJSX17Nnz0qVLq1atGjFihOiccqKvrx8XF1e3bt2FCxcmJiZu2LBBdBEEY2ABABTm9u3b3bp1S0xM3L17d7du3UTnlCupVLpgwYLatWu7u7v36NGDexdqON4iBAAoxpUrV7755puiLwxq2rp6zdXVNS4u7uTJkz179kxJSRGdA2EYWAAABUhISOjYsWNBQcGxY8e++OIL0Tki2dnZbd++/c8//7S1tX3y5InoHIjBwAIAlNaFCxesra319PSOHTvWvHlz0Tni9erV68cff7x7927nzp0TExNF50AABhYAoFQuXrz47bffVqxY8dixY40aNRKdoyw6deq0fv36e/fudenShTtDayAGFgCg5C5fvty1a9dKlSodPXrUwsJCdI5y+fLLL/fu3Xv//v1vv/2W2+loGgYWAKCEbty40bVrV11d3Z9++ol19VbffPPNrl27bt261a1bt9TUVNE5KD8MLABASTx48ODbb7/Nz88/dOhQw4YNRecor06dOv34449//PFH7969X758KToH5YSBBQAotmfPnnXr1i0tLe3AgQNNmzYVnaPsunfvvmHDhl9//XXAgAG5ubmic1AeGFgAgOLJzMz87rvv7ty5s2vXrtatW4vOUQ22trYxMTEHDhwYOXJkYWGh6ByUOa7kDgAohtzc3EGDBp07d27btm3t27cXnaNKRo0a9fTp0ylTptSoUSMgIEB0DsoWAwsAUAzOzs779+9fvnx57969RbeoHm9v74cPHwYGBtapU8fDw0N0DsoQAwsA8LH8/PxWrFgxe/ZsBwcH0S2qKigo6OHDhxMnTqxbt26/fv1E56Cs8BksAMBHiYuLmz179siRI2fPni26RYXJZLK1a9e2bdt26NChZ8+eFZ2DssLAAgB82MmTJ8eMGdOpU6eoqCipVCo6R7VVqFBh+/btZmZmffv2vX//vugclAkGFgDgA+7evdu/f39zc/MtW7bo6uqKzlEHpqamu3btevnypY2NTWZmpugcKB4DCwDwPi9evLCxscnOzt65c2fVqlVF56iPZs2axcfHJyQk/PDDD1y4Qf0wsAAA71RYWDhq1KhLly7Fx8c3adJEdI666d69e0BAwNatW/38/ES3QMH4FiEA4J0WLFiwZcuWwMDAbt26iW5RT56enhcuXPD19W3dunXfvn1F50BhOIMFAHi7ffv2+fj4DBs2bOLEiaJb1FlkZORnn302fPjwq1evim6BwjCwAABvcfv27aFDh7Zq1So6Olp0i5rT19ffunWrvr5+//79X7x4IToHisHAAgC8KSsra8CAAVKpdOvWrRUqVBCdo/7q1KmzcePGa9eujRkzRnQLFIOBBQB40/jx4y9evLhu3ToLCwvRLZqic+fO8+fPj4+PDw0NFd0CBWBgAQD+YfXq1bGxsTNmzOjZs6foFs0yefJkGxsbLy+v06dPi25BaTGwAAB/uXz5squrq7W1NffDKX9SqXTlypW1atUaPHhwSkqK6ByUCgMLAPBfL1++HDJkiKGhYVxcnJaWlugcTVSlSpX4+PjHjx87ODhw9VGVxsACAPyXu7v7n3/+uW7duurVq4tu0Vyff/754sWLt2/fzoexVBoDCwAgkUgk8fHxsbGx06dP79Kli+gWTefu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" }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "@time plot(range(-π, π, 1000), sin)" ] }, { "cell_type": "code", "execution_count": null, "id": "897443b1-a0d1-4297-a374-0175aa3afacf", "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "jupytext": { "formats": "ipynb,jl:hydrogen" }, "kernelspec": { "display_name": "Julia 1.8.5", "language": "julia", "name": "julia-1.8" }, "language_info": { "file_extension": ".jl", "mimetype": "application/julia", "name": "julia", "version": "1.8.5" } }, "nbformat": 4, "nbformat_minor": 5 }