SQLite читает и записывает небольшие BLOB-объекты (например, эскизы изображений) на 35 % быстрее¹, чем те же BLOB-объекты, которые можно читать или записывать в отдельные файлы на диске с помощью функций fread() или fwrite().
Кроме того, одна база данных SQLite, содержащая 10-килобайтные BLOB-объекты, использует примерно на 20 % меньше места на диске, чем хранение BLOB-объектов в отдельных файлах.
Разница в производительности возникает (мы полагаем), потому что при работе с базой данных SQLite системные вызовы open() и close() вызываются только один раз, тогда как open() и close() вызываются один раз для каждого BLOB-объекта при использовании BLOB-объектов, хранящихся в отдельные файлы. Похоже, что накладные расходы на вызовы open() и close() больше, чем накладные расходы на использование базы данных. Уменьшение размера связано с тем, что отдельные файлы дополняются до следующего кратного размера блока файловой системы, в то время как большие двоичные объекты более плотно упаковываются в базу данных SQLite.
/Library/Application Support/org.pqrs/Karabiner-Elements/bin/karabiner_grabber
{
"global": {
"check_for_updates_on_startup": true,
"show_in_menu_bar": true,
"show_profile_name_in_menu_bar": false
},
"profiles": [
{
"complex_modifications": {
"parameters": {
"basic.simultaneous_threshold_milliseconds": 50,
"basic.to_delayed_action_delay_milliseconds": 500,
"basic.to_if_alone_timeout_milliseconds": 1000,
"basic.to_if_held_down_threshold_milliseconds": 500,
"mouse_motion_to_scroll.speed": 100
},
"rules": [
{
"description": "fn -> previous input source",
"manipulators": [
{
"from": {
"key_code": "fn"
},
"to": [
{
"key_code": "fn"
}
],
"to_if_alone": [
{
"key_code": "spacebar",
"modifiers": [
"left_control"
]
}
],
"type": "basic"
}
]
}
]
},
"devices": [],
"fn_function_keys": [
{
"from": {
"key_code": "f1"
},
"to": [
{
"consumer_key_code": "display_brightness_decrement"
}
]
},
{
"from": {
"key_code": "f2"
},
"to": [
{
"consumer_key_code": "display_brightness_increment"
}
]
},
{
"from": {
"key_code": "f3"
},
"to": [
{
"apple_vendor_keyboard_key_code": "mission_control"
}
]
},
{
"from": {
"key_code": "f4"
},
"to": [
{
"apple_vendor_keyboard_key_code": "spotlight"
}
]
},
{
"from": {
"key_code": "f5"
},
"to": [
{
"consumer_key_code": "dictation"
}
]
},
{
"from": {
"key_code": "f6"
},
"to": [
{
"key_code": "f6"
}
]
},
{
"from": {
"key_code": "f7"
},
"to": [
{
"consumer_key_code": "rewind"
}
]
},
{
"from": {
"key_code": "f8"
},
"to": [
{
"consumer_key_code": "play_or_pause"
}
]
},
{
"from": {
"key_code": "f9"
},
"to": [
{
"consumer_key_code": "fast_forward"
}
]
},
{
"from": {
"key_code": "f10"
},
"to": [
{
"consumer_key_code": "mute"
}
]
},
{
"from": {
"key_code": "f11"
},
"to": [
{
"consumer_key_code": "volume_decrement"
}
]
},
{
"from": {
"key_code": "f12"
},
"to": [
{
"consumer_key_code": "volume_increment"
}
]
}
],
"name": "Default profile",
"parameters": {
"delay_milliseconds_before_open_device": 1000
},
"selected": true,
"simple_modifications": [],
"virtual_hid_keyboard": {
"country_code": 0,
"indicate_sticky_modifier_keys_state": true,
"mouse_key_xy_scale": 100
}
}
]
}
class A:
def __init__(self):
super().__init__()
self.aa = 2
class B:
def __init__(self):
super().__init__()
self.ab = 3
class C(A, B):
pass
c = C()
print(c.aa, c.ab)
Socket AM3+ AMD FX Series 8300 since 4/18/2012
CREATE FUNCTION count_estimate(query text)
RETURNS integer
LANGUAGE plpgsql AS
$func$
DECLARE
rec record;
rows integer;
BEGIN
FOR rec IN EXECUTE 'EXPLAIN ' || query LOOP
rows := substring(rec."QUERY PLAN" FROM ' rows=([[:digit:]]+)');
EXIT WHEN rows IS NOT NULL;
END LOOP;
RETURN rows;
END
$func$;
(//p[@class='message-text'])[last()]
# Click the link to activate the alert
driver.find_element(By.LINK_TEXT, "See a sample confirm").click()
# Wait for the alert to be displayed
wait.until(expected_conditions.alert_is_present())
# Store the alert in a variable for reuse
alert = driver.switch_to.alert
# Store the alert text in a variable
text = alert.text
# Press the Cancel button
alert.dismiss()
YUhSMGNITTZMeTl6TWpBeU1DMHdOUzVoYm1SeWIyVmxaQzV5ZFM5bWFXeGxjeTh5TURJeEx6RXlMekkzTDNSeVlXWm1hV05qYjNBelpDMHhOalF3TlRZNU9UZ3hMWGQzZHk1aGJtUnliMlZsWkM1eWRTNWhjR3M9fDE2NDExMzg0MjN8MzA=
aHR0cHM6Ly9zMjAyMC0wNS5hbmRyb2VlZC5ydS9maWxlcy8yMDIxLzEyLzI3L3RyYWZmaWNjb3AzZC0xNjQwNTY5OTgxLXd3dy5hbmRyb2VlZC5ydS5hcGs=|1641138423|30
https://s2020-05.androeed.ru/files/2021/12/27/trafficcop3d-1640569981-www.androeed.ru.apk
from more_itertools import windowed
import datetime
import statistics
dates = [
datetime.datetime(year=2021, month=12, day=20, hour=16, minute=54, second=56),
datetime.datetime(year=2021, month=12, day=20, hour=16, minute=54, second=57),
datetime.datetime(year=2021, month=12, day=20, hour=16, minute=54, second=57),
]
diffs = []
for first, second in windowed(dates, 2):
diffs.append((second-first).total_seconds())
print(f'Avg: {statistics.mean(diffs)}')
Avg: 0.5
Process finished with exit code 0
import requests
import json
import pprint
headers = {
'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.55 Safari/537.36',
}
params = (
('categoryId', '1010193244'),
('productIds',
'103733907,105019717,103807780,103646046,103789895,103789901,103494687,103807800,103586862,104787564,104787563,103678178,104787606,104787560,104787562,103646051,103994120,104131075,103056467,103588023,103921817,103554672,103921816,103101531,103284042,103101528,103284041,104787703,105019580,105019579,104787704,103108154,103376867,103760889,102948033,103494674,104130553,103215061,102944627,103293571'),
('languageId', '-20'),
)
response = requests.get('https://www.bershka.com/itxrest/3/catalog/store/45009591/40259536/productsArray',
headers=headers, params=params)
data = json.loads(response.text)
pp = pprint.PrettyPrinter(indent=4)
pp.pprint(data['products'][0])
from selenium.webdriver.common.by import By
element = driver.find_element(By.XPATH, xpath)
conn = psycopg2.connect(DSN)
with conn:
with conn.cursor() as curs:
curs.execute(SQL1)
conn.close()