Security News
Research
Data Theft Repackaged: A Case Study in Malicious Wrapper Packages on npm
The Socket Research Team breaks down a malicious wrapper package that uses obfuscation to harvest credentials and exfiltrate sensitive data.
Quickly find where your code is spending its time.
|Build Status|
Benchit is intended to be a minimalistic library that times how long it takes to get from point A to point B. It helps detect unoptimized code.
Benchit is only compatible with python 3. For python 2 support, use benchit==0.2.6 (https://pypi.python.org/pypi/bench-it/0.2.6)
Installation
::
pip install bench-it
Example
~~~~~~~
::
from benchit import BenchIt
from time import sleep
def demo_benchmark():
b = BenchIt() # starts the timer
# do stuff
sleep(1); b() # Add marker after this code. Code used as marker name.
sleep(.2);
sleep(.3);
sleep(.4);
b("More stuff done") # Add a custom named marker
for i in range(1, 5):
sleep(.1); b() # Code can be marked in a loop
b.display() # Display output as a table
demo_benchmark()
BenchIt
+-----------------+----------------+------------+------+----------+---------+---------+
| Marker | Method | Line | Hits | Avg Time | Runtime | Percent |
+-----------------+----------------+------------+------+----------+---------+---------+
| sleep(1) | demo_benchmark | demo.py:9 | 1 | 1.01341 | 1.01341 | 43.33 |
| More stuff Done | demo_benchmark | demo.py:14 | 1 | 0.91278 | 0.91278 | 39.03 |
| sleep(.1) | demo_benchmark | demo.py:17 | 4 | 0.10306 | 0.41223 | 17.63 |
+-----------------+----------------+------------+------+----------+---------+---------+
Total runtime: 2.33860
How to Use
~~~~~~~~~~
Instantiating the class starts the timer. BenchIt is run as a singleton.
Re-instantiating anywhere in your code will pull in the previously
instantiated timer. To create a new timer, initialize BenchIt with a
unique name.
::
b = BenchIt()
b2 = BenchIt() # b == b2
b3 = BenchIt("Timer A") # b != b3
Set a marker after some code.
::
call_a_method(); b() # Quickly add a marker after a method
method1()
method2()
b("Two methods called") # Or create a manual marker after a chunk of code
Stop and display the table for analysis.
::
b.display()
Methods
~~~~~~~
``benchit.__init__()`` Instantiate and start the timer.
``benchit.__call__(marker_name)`` Add marker at this point.
``benchit.stop()`` Optionally, stop the timer at a point.
``benchit.display()`` Display the table. Stops the timer if running.
Credits
~~~~~~~
- Special thanks Luke Maurits for
`prettytable <https://pypi.python.org/pypi/PrettyTable>`__\ \*
.. |Build Status| image:: https://secure.travis-ci.org/scuml/benchit.png?branch=master
:target: http://travis-ci.org/scuml/benchit
FAQs
Quick and easy python benchmarking.
We found that bench-it demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Research
The Socket Research Team breaks down a malicious wrapper package that uses obfuscation to harvest credentials and exfiltrate sensitive data.
Research
Security News
Attackers used a malicious npm package typosquatting a popular ESLint plugin to steal sensitive data, execute commands, and exploit developer systems.
Security News
The Ultralytics' PyPI Package was compromised four times in one weekend through GitHub Actions cache poisoning and failure to rotate previously compromised API tokens.