{"id":31787020,"url":"https://github.com/stevenrice99/dram-tracing-samples","last_synced_at":"2026-05-06T00:38:45.853Z","repository":{"id":318216250,"uuid":"1069978441","full_name":"StevenRice99/DRAM-Tracing-Samples","owner":"StevenRice99","description":"Samples of how you could perform memory tracing.","archived":false,"fork":false,"pushed_at":"2025-10-22T01:56:13.000Z","size":43,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-10-22T03:33:32.243Z","etag":null,"topics":["dram","example","intel-pin","intel-pintools","linux","memory","memory-trace","pintool","pintool-simulator","pintools","profiling","profiling-functions","profiling-tools","python","python3","sample","trace","tracing","ubuntu","valgrind"],"latest_commit_sha":null,"homepage":"https://stevenrice.ca","language":"Python","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/StevenRice99.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-10-05T02:17:24.000Z","updated_at":"2025-10-22T01:56:14.000Z","dependencies_parsed_at":"2025-10-22T03:25:18.975Z","dependency_job_id":"8b60155b-d7a4-4085-8c95-8788b3f955cf","html_url":"https://github.com/StevenRice99/DRAM-Tracing-Samples","commit_stats":null,"previous_names":["stevenrice99/dram-tracing-samples"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/StevenRice99/DRAM-Tracing-Samples","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/StevenRice99%2FDRAM-Tracing-Samples","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/StevenRice99%2FDRAM-Tracing-Samples/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/StevenRice99%2FDRAM-Tracing-Samples/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/StevenRice99%2FDRAM-Tracing-Samples/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/StevenRice99","download_url":"https://codeload.github.com/StevenRice99/DRAM-Tracing-Samples/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/StevenRice99%2FDRAM-Tracing-Samples/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32674009,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-05T11:29:49.557Z","status":"ssl_error","status_checked_at":"2026-05-05T11:29:48.587Z","response_time":54,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["dram","example","intel-pin","intel-pintools","linux","memory","memory-trace","pintool","pintool-simulator","pintools","profiling","profiling-functions","profiling-tools","python","python3","sample","trace","tracing","ubuntu","valgrind"],"created_at":"2025-10-10T13:46:05.630Z","updated_at":"2026-05-06T00:38:45.845Z","avatar_url":"https://github.com/StevenRice99.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"Samples of how you could perform memory tracing.\n\n# trace-valgrind.sh\n\nTrace memory using [Valgrind](https://valgrind.org \"Valgrind\").\n\n- ``-t`` - The temporary file path. Defaults to ``${HOME}/DRAM-Tracing-Samples/temp-trace.log``.\n- ``-o`` - The output trace file path. Defaults to ``${HOME}/DRAM-Tracing-Samples/trace-valgrind.stl``.\n- ``-s`` - The target command to be traced. Defaults to ``/usr/bin/python3 ${HOME}/DRAM-Tracing-Samples/main.py``.\n\n# trace-pin.sh\n\nTrace memory using [Intel Pin](https://www.intel.com/content/www/us/en/developer/articles/tool/pin-a-dynamic-binary-instrumentation-tool.html \"Intel Pin\").\n\n- ``-p`` - The \"pin\" executable. Defaults to ``{HOME}/pin/pin``.\n- ``-e`` - The pin tracer program executable. Defaults to ``${HOME}/pin/source/tools/SimpleExamples/obj-intel64/pinatrace.so``.\n- ``-t`` - The temporary file path. Defaults to ``${HOME}/DRAM-Tracing-Samples/temp-trace.log``.\n- ``-o`` - The output trace file path. Defaults to ``${HOME}/DRAM-Tracing-Samples/trace-pin.stl``.\n- ``-s`` - The target command to be traced. Defaults to ``/usr/bin/python3 ${HOME}/DRAM-Tracing-Samples/main.py``.\n\n# synthetic.py\n\nScript to generate very basic synthetic data. The synthetic data this produces is very basic and entirely random. You may want to use this as a base and expand it to have more systematic reads and writes at times. For instance, reading and writing to sequential addresses to simulate array reads and writes, rather than entirely random accesses.\n\n- ``-e`` or `--entries` - Number of lines to generate. Defaults to ``1000``.\n- ``-m`` or `--megabytes` - Megabytes to generate up to. Defaults to ``4096``.\n- ``-r`` or `--read` - Percentage of operations which are reads. Defaults to ``0.9``.\n- ``-o`` or `--output` - Output file path. Defaults to ``synthetic.stl``.\n- ``-s`` or `--seed` - Random generation seed. Defaults to ``42``.\n- ``-l`` or `--level` - Logging level. Defaults to ``INFO``.\n\n# genetic_algorithm.py\n\nA very basic genetic algorithm implementation you could use as a starting point. **Note in its current form, you are unlikely to converge to anything!** There are too many component options which are not compatible with each other, so it is likely you will go the entire genetic algorithm run without creating a single valid member. This is an area you can try to improve with your own unique ideas and methods.\n\n- ``-l`` or `--level` - Logging level. Defaults to ``INFO``.\n\n# Helpers\n\nThese files do not need to be called on their own but help the bash scripts or other Python scripts.\n\n## common.py\n\nCommon data between other Python scripts.\n\n## configuration.py\n\nHelper to execute dynamically created configuration files.\n\n## trace_valgrind.py\n\nHelps format the results from ``trace-valgrind.sh``.\n\n## trace_pin.py\n\nHelps format the results from ``trace-pin.sh``.\n\n## main.py\n\nSimple placeholder script which simply prints ``Hello World!`` to the console.\n\n# Sample Configuration Files\n\n``hello-world-1866.json`` and ``hello-world-2400.json`` provide sample bases to run against the captured traces. ``synthetic-1866.json`` and ``synthetic-2400.json`` are the same but run on ``synethtic.stl`` generated by ``synthetic.py``.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstevenrice99%2Fdram-tracing-samples","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstevenrice99%2Fdram-tracing-samples","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstevenrice99%2Fdram-tracing-samples/lists"}