home / github / issue_comments

Menu
  • Search all tables
  • GraphQL API

issue_comments: 1074446576

This data as json

html_url issue_url id node_id user created_at updated_at author_association body reactions issue performed_via_github_app
https://github.com/simonw/datasette/issues/1679#issuecomment-1074446576 https://api.github.com/repos/simonw/datasette/issues/1679 1074446576 IC_kwDOBm6k_c5ACsDw 9599 2022-03-21T21:38:27Z 2022-03-21T21:38:27Z OWNER

OK here's a microbenchmark script: ```python import sqlite3 import timeit

db = sqlite3.connect(":memory:") db_with_progress_handler_1 = sqlite3.connect(":memory:") db_with_progress_handler_1000 = sqlite3.connect(":memory:")

db_with_progress_handler_1.set_progress_handler(lambda: None, 1) db_with_progress_handler_1000.set_progress_handler(lambda: None, 1000)

def execute_query(db): cursor = db.execute(""" with recursive counter(x) as ( select 0 union select x + 1 from counter ) select * from counter limit 10000; """) list(cursor.fetchall())

print("Without progress_handler") print(timeit.timeit(lambda: execute_query(db), number=100))

print("progress_handler every 1000 ops") print(timeit.timeit(lambda: execute_query(db_with_progress_handler_1000), number=100))

print("progress_handler every 1 op") print(timeit.timeit(lambda: execute_query(db_with_progress_handler_1), number=100)) Results: % python3 bench.py Without progress_handler 0.8789225700311363 progress_handler every 1000 ops 0.8829826560104266 progress_handler every 1 op 2.8892734259716235 ```

So running every 1000 ops makes almost no difference at all, but running every single op is a 3.2x performance degradation.

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
1175854982  
Powered by Datasette · Queries took 16.68ms · About: github-to-sqlite