json数据传输压缩以及数据切片分割分块传输多种实现方法,大数据量情况下zlib压缩以及bytes指定长度分割
json数据传输压缩以及数据切片分割分块传输多种实现方法,大数据量情况下zlib压缩以及bytes指定长度分割。
import sys
import zlib
import json
import mathKAFKA_MAX_SIZE = 1024 * 1024
CONTENT_MIN_MAX_SIZE = KAFKA_MAX_SIZE * 0.9def split_data(data):""":param data: json:return:"""# 先进行压缩data = zlib.compress(json.dumps(data).encode('utf-8'))part_content = b""content_list = []data_length = len(data)data_size = sys.getsizeof(data)step = math.ceil(data_length / ((data_size / CONTENT_MIN_MAX_SIZE) + 1)) # 计算切割的长度for i in range(0, len(data), step):default_content = part_contentpart_content += data[i:i + step]cur_part_content_size = sys.getsizeof(part_content)# 限制每个分片在 0.9M 到 1M 之间if CONTENT_MIN_MAX_SIZE < cur_part_content_size < KAFKA_MAX_SIZE:content_list.append(part_content)part_content = b""elif KAFKA_MAX_SIZE < cur_part_content_size:content_list.append(default_content)part_content = data[i:i + step]if part_content:content_list.append(part_content)return content_listdef split_data2(data):""":param data: json:return:"""# 先进行压缩data = zlib.compress(json.dumps(data).encode('utf-8'))data_length = len(data)step = int(CONTENT_MIN_MAX_SIZE)content_list = [data[i:i + step] for i in range(0, data_length, step)]return content_listdef split_data3(data):""":param data: json:return:"""# 先进行压缩data = zlib.compress(json.dumps(data).encode('utf-8'))import restep = int(CONTENT_MIN_MAX_SIZE)last = data[int((len(data) / step)) * step:]content_list = re.findall(bytes("[\s\S]{" + str(step) + "}", encoding="utf8"), data)content_list.append(last)return content_listdef re_j_data(content_list):# 还原成jsoncur_content = b""for item in content_list:cur_content += itemdata = json.loads(zlib.decompress(cur_content))return dataif __name__ == '__main__':test_data = {"domain": "uoowoo.cn","ip": "122.10.52.140","ip_version": 4,"port": 443,"path": "/","url": "https://uoowoo.cn/","protocol": "https","transport": "tcp","date": 1624346530364,"status_code": 200,"header": 'HTTP/1.1 200 OK\\r\\nServer: nginx\\r\\nDate: Tue, 22 Jun 2021 07:22:09 GMT\\r\\nContent-Type: text/html\\r\\nLast-Modified: Fri, 11 Jun 2021 10:25:32 GMT\\r\\nTransfer-Encoding: chunked\\r\\nVary: Accept-Encoding\\r\\nETag: W/\\"60c33a1c-1ba9\\"\\r\\nContent-Encoding: gzip\\r\\nConnection: close\\r\\n\\r\\n',"body": "PCFkb2N0eXBlIGh0bWw+DQo8aHRtbCBsYW5nPSJ6aC1DTiI+DQogICA8aGVhZD4NCiAgICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04Ii8+DQogICAgICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLGluaXRpYWwtc2NhbGU9MSxtYXhpbXVtLXNjYWxlPTEsdXNlci1zY2FsYWJsZT1ubyIvPg0KICAgICAgPG1ldGEgbmFtZT0iZm9ybWF0LWRldGVjdGlvbiIgY29udGVudD0idGVsZXBob25lPW5vIj4NCiAgICAgIDx0aXRsZT5PROS9k+iCsjwvdGl0bGU+DQogICAgICA8bWV0YSBuYW1lPSJrZXl3b3JkcyIgY29udGVudD0iT0TkvZPogrIiLz4NCiAgICAgIDxtZXRhIG5hbWU9ImRlc2NyaXB0aW9uIiBjb250ZW50PSJPROS9k+iCsiIvPg0KICAgICAgPGxpbmsgcmVsPSJzaG9ydGN1dCBpY29uIiBocmVmPSIuL2ltYWdlcy9mYXZpY29uLmljbyIvPg0KICAgICAgPHNjcmlwdCBzcmM9Ii4vanMvaW5kZXguanMiPjwvc2NyaXB0Pg0KICAgICAgPGxpbmsgaHJlZj0iLi9jc3Mvb2RTcG9ydHMuY3NzIiByZWw9InN0eWxlc2hlZXQiPg0KICAgPC9oZWFkPg0KICAgPGJvZHk+DQogICAgICA8ZGl2IGNsYXNzPSJkb3dubG9hZC1wYWdlIiBpZD0iYXBwIj4NCiAgICAgICAgIDxkaXYgY2xhc3M9ImRvd25sb2FkLWJ0biI+PGltZyBjbGFzcz0iZG93bmxvYWQtaGVhZGVyIiBzcmM9Ii4vaW1hZ2VzL29kX3Nwb3J0cy90b3AtZG93bmxvYWQucG5nIiBvbmNsaWNrPSJkb3dubG9hZEFwcCgpIj48L2Rpdj4NCiAgICAgICAgIDxkaXYgY2xhc3M9ImRvd25sb2FkLWJ0biI+PGltZyBjbGFzcz0iZG93bmxvYWQtZm9vdGVyIiBzcmM9Ii4vaW1hZ2VzL29kX3Nwb3J0cy9mb290LWltZy5wbmciIG9uY2xpY2s9ImtmKCkiPjwvZGl2Pg0KICAgICAgICAgPGRpdiBjbGFzcz0iZG93bmxvYWQtYmFja2dyb3VuZCI+DQogICAgICAgICAgICA8aW1nIGNsYXNzPSJiYW5uZXItaW1nIiBzcmM9Ii4vaW1hZ2VzL29kX3Nwb3J0cy9CR18wMS5qcGciIGFsdD0iIj4NCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJ1dHRvbnMiPg0KICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZG93bmxvYWQtYnRuIiBvbmNsaWNrPSJoNSgpIj48aW1nIHNyYz0iLi9pbWFnZXMvb2Rfc3BvcnRzL2ljb24teGlhemFpLnBuZyIvPiA8c3Bhbj7nq4vljbPms6jlhow8L3NwYW4+PC9kaXY+DQogICAgICAgICAgICAgICA8YSBjbGFzcz0ic2VydmljZS1idG4iIGhyZWY9ImphdmFzY3JpcHQ6dm9pZCgwKSIgb25jbGljaz0ia2YoKSI+PGltZyBzcmM9Ii4vaW1hZ2VzL29kX3Nwb3J0cy9pY29uLXNlcnZpY2UucG5nIi8+IDxzcGFuPuW9qemHkeWuouacjTwvc3Bhbj48L2E+DQogICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyLXdyYXAiPg0KICAgICAgICAgICAgPGRpdiBjbGFzcz0iZG93bmxvYWQtYmFja2dyb3VuZDEgZmlyc3QtY29udGVudCI+DQogICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0aXRsZTEiPjxpbWcgc3JjPSIuL2ltYWdlcy9vZF9zcG9ydHMvbGVmdC5wbmciLz4gPHNwYW4+6aaW5a2Y6LGq56S8PC9zcGFuPiA8aW1nIHNyYz0iLi9pbWFnZXMvb2Rfc3BvcnRzL3JpZ2h0LnBuZyIvPjwvZGl2Pg0KICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29udGVudC1ib3giPg0KICAgICAgICAgICAgICAgICAgPHRhYmxlPg0KICAgICAgICAgICAgICAgICAgICAgPHRyPg0KICAgICAgICAgICAgICAgICAgICAgICAgPHRoPummluWtmDwvdGg+DQogICAgICAgICAgICAgICAgICAgICAgICA8dGg+5b2p6YeRPC90aD4NCiAgICAgICAgICAgICAgICAgICAgIDwvdHI+DQogICAgICAgICAgICAgICAgICAgICA8dHI+DQogICAgICAgICAgICAgICAgICAgICAgICA8dGQ+NTAwPC90ZD4NCiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4xMjg8L3RkPg0KICAgICAgICAgICAgICAgICAgICAgPC90cj4NCiAgICAgICAgICAgICAgICAgICAgIDx0cj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4xMDAwPC90ZD4NCiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4yNjg8L3RkPg0KICAgICAgICAgICAgICAgICAgICAgPC90cj4NCiAgICAgICAgICAgICAgICAgICAgIDx0cj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4yMDAwPC90ZD4NCiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4zODg8L3RkPg0KICAgICAgICAgICAgICAgICAgICAgPC90cj4NCiAgICAgICAgICAgICAgICAgICAgIDx0cj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD41MDAwPC90ZD4NCiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD42ODg8L3RkPg0KICAgICAgICAgICAgICAgICAgICAgPC90cj4NCiAgICAgICAgICAgICAgICAgICAgIDx0cj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4xMDAwMDwvdGQ+DQogICAgICAgICAgICAgICAgICAgICAgICA8dGQ+MTI4ODwvdGQ+DQogICAgICAgICAgICAgICAgICAgICA8L3RyPg0KICAgICAgICAgICAgICAgICAgICAgPHRyPg0KICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjIwMDAwPC90ZD4NCiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4xNjg4PC90ZD4NCiAgICAgICAgICAgICAgICAgICAgIDwvdHI+DQogICAgICAgICAgICAgICAgICAgICA8dHI+DQogICAgICAgICAgICAgICAgICAgICAgICA8dGQ+NTAwMDA8L3RkPg0KICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjI4ODg8L3RkPg0KICAgICAgICAgICAgICAgICAgICAgPC90cj4NCiAgICAgICAgICAgICAgICAgICAgIDx0cj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4xMDAwMDA8L3RkPg0KICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjU4ODg8L3RkPg0KICAgICAgICAgICAgICAgICAgICAgPC90cj4NCiAgICAgICAgICAgICAgICAgICAgIDx0cj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4yMDAwMDA8L3RkPg0KICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjg4ODg8L3RkPg0KICAgICAgICAgICAgICAgICAgICAgPC90cj4NCiAgICAgICAgICAgICAgICAgIDwvdGFibGU+DQogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb250ZW50LXRpcHMiPg0KICAgICAgICAgICAgICAgICAgICAgPHA+5rOo77ya6aaW5a2Y5Y2z6YCB77yM5L2T6IKyLOeUteerniAx5YCN5rWB5rC05o+Q546w77yM5YW25LuW5Zy66aaGM+WAjea1geawtOaPkOasvjwvcD4NCiAgICAgICAgICAgICAgICAgICAgIDxwPjwvcD4NCiAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRvd25sb2FkLWJhY2tncm91bmQxIj4NCiAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRpdGxlMSI+PGltZyBzcmM9Ii4vaW1hZ2VzL29kX3Nwb3J0cy9sZWZ0LnBuZyIvPiA8c3Bhbj7pppblrZjlj4zlgI3osarnpLw8L3NwYW4+IDxpbWcgc3JjPSIuL2ltYWdlcy9vZF9zcG9ydHMvcmlnaHQucG5nIi8+PC9kaXY+DQogICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb250ZW50LWJveCI+DQogICAgICAgICAgICAgICAgICA8dGFibGU+DQogICAgICAgICAgICAgICAgICAgICA8dHI+DQogICAgICAgICAgICAgICAgICAgICAgICA8dGg+6aaW5a2YPC90aD4NCiAgICAgICAgICAgICAgICAgICAgICAgIDx0aD7lvanph5E8L3RoPg0KICAgICAgICAgICAgICAgICAgICAgICAgPHRoPuimgeaxgjwvdGg+DQogICAgICAgICAgICAgICAgICAgICA8L3RyPg0KICAgICAgICAgICAgICAgICAgICAgPHRyPg0KICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjEwMDwvdGQ+DQogICAgICAgICAgICAgICAgICAgICAgICA8dGQ+MTAwPC90ZD4NCiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCByb3dzcGFuPSIzIj7kvZPogrLnlLXnq54z5YCN5rWB5rC077yM5YW25LuW5Zy66aaGNeWAjea1geawtDwvdGQ+DQogICAgICAgICAgICAgICAgICAgICA8L3RyPg0KICAgICAgICAgICAgICAgICAgICAgPHRyPg0KICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjEyMDA8L3RkPg0KICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjEyMDA8L3RkPg0KICAgICAgICAgICAgICAgICAgICAgPC90cj4NCiAgICAgICAgICAgICAgICAgICAgIDx0cj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4yMDAwPC90ZD4NCiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4yMDAwPC90ZD4NCiAgICAgICAgICAgICAgICAgICAgIDwvdHI+DQogICAgICAgICAgICAgICAgICA8L3RhYmxlPg0KICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29udGVudC10aXBzIj4NCiAgICAgICAgICAgICAgICAgICAgIDxwPuazqO+8muW9qemHkeWIhjTmrKHotaDpgIHvvIznrKzkuIDmrKHnq4vljbPliLDotKblvanph5HmgLvmlbA05YiG5LmLMe+8jOS5i+WQjuavj+WRqOmihuWPluS4gOasoTItMy005qyh6ZyA6KaB5omT5aSf6aaW5a2YM+WAjeS7peS4iueahOS9k+iCsueUteernua1geawtO+8jOWFtuS7luWcuummhua1geawtOi+vuWIsDXlgI3ljbPlj6/nlLPor7flvanph5HjgILvvIgxMDDpgIExMDDliIbkuKTmrKHotaDpgIHvvIk8L3A+DQogICAgICAgICAgICAgICAgICAgICA8cD48L3A+DQogICAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICA8ZGl2IGNsYXNzPSJkb3dubG9hZC1iYWNrZ3JvdW5kMSI+DQogICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0aXRsZTEiPjxpbWcgc3JjPSIuL2ltYWdlcy9vZF9zcG9ydHMvbGVmdC5wbmciLz4gPHNwYW4+5ZG85pyL5ZSk5Y+LIOWdkOS6q+WFtuaIkDwvc3Bhbj4gPGltZyBzcmM9Ii4vaW1hZ2VzL29kX3Nwb3J0cy9yaWdodC5wbmciLz48L2Rpdj4NCiAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InN1Yi10aXRsZSI+PGltZyBzcmM9Ii4vaW1hZ2VzL29kX3Nwb3J0cy9pY29uLXN1YnRpdGxlLnBuZyI+6LGq56S85LiAPC9kaXY+DQogICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb250ZW50LWltZyI+PGltZyBzcmM9Ii4vaW1hZ2VzL29kX3Nwb3J0cy9oYW9saTEucG5nIiBhbHQ9IiI+PC9kaXY+DQogICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdWItdGl0bGUiPjxpbWcgc3JjPSIuL2ltYWdlcy9vZF9zcG9ydHMvaWNvbi1zdWJ0aXRsZS5wbmciPuixquekvOS6jDwvZGl2Pg0KICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29udGVudC1ib3giPg0KICAgICAgICAgICAgICAgICAgPHRhYmxlPg0KICAgICAgICAgICAgICAgICAgICAgPHRyPg0KICAgICAgICAgICAgICAgICAgICAgICAgPHRoPuaci+WPi+i0puWPt+WNh+e6pzwvdGg+DQogICAgICAgICAgICAgICAgICAgICAgICA8dGg+5Y2H57qn5b2p6YeRPC90aD4NCiAgICAgICAgICAgICAgICAgICAgIDwvdHI+DQogICAgICAgICAgICAgICAgICAgICA8dHI+DQogICAgICAgICAgICAgICAgICAgICAgICA8dGQ+VklQMzwvdGQ+DQogICAgICAgICAgICAgICAgICAgICAgICA8dGQ+MTg4PC90ZD4NCiAgICAgICAgICAgICAgICAgICAgIDwvdHI+DQogICAgICAgICAgICAgICAgICAgICA8dHI+DQogICAgICAgICAgICAgICAgICAgICAgICA8dGQ+VklQNDwvdGQ+DQogICAgICAgICAgICAgICAgICAgICAgICA8dGQ+Njg4PC90ZD4NCiAgICAgICAgICAgICAgICAgICAgIDwvdHI+DQogICAgICAgICAgICAgICAgICAgICA8dHI+DQogICAgICAgICAgICAgICAgICAgICAgICA8dGQ+VklQNTwvdGQ+DQogICAgICAgICAgICAgICAgICAgICAgICA8dGQ+ODg4PC90ZD4NCiAgICAgICAgICAgICAgICAgICAgIDwvdHI+DQogICAgICAgICAgICAgICAgICAgICA8dHI+DQogICAgICAgICAgICAgICAgICAgICAgICA8dGQ+VklQNjwvdGQ+DQogICAgICAgICAgICAgICAgICAgICAgICA8dGQ+MTI4ODwvdGQ+DQogICAgICAgICAgICAgICAgICAgICA8L3RyPg0KICAgICAgICAgICAgICAgICAgICAgPHRyPg0KICAgICAgICAgICAgICAgICAgICAgICAgPHRkPlZJUDc8L3RkPg0KICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjE4ODg8L3RkPg0KICAgICAgICAgICAgICAgICAgICAgPC90cj4NCiAgICAgICAgICAgICAgICAgICAgIDx0cj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5WSVA4PC90ZD4NCiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4yODg4PC90ZD4NCiAgICAgICAgICAgICAgICAgICAgIDwvdHI+DQogICAgICAgICAgICAgICAgICAgICA8dHI+DQogICAgICAgICAgICAgICAgICAgICAgICA8dGQ+VklQOTwvdGQ+DQogICAgICAgICAgICAgICAgICAgICAgICA8dGQ+Mzg4ODwvdGQ+DQogICAgICAgICAgICAgICAgICAgICA8L3RyPg0KICAgICAgICAgICAgICAgICAgICAgPHRyPg0KICAgICAgICAgICAgICAgICAgICAgICAgPHRkPlZJUDEwPC90ZD4NCiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD42ODg4PC90ZD4NCiAgICAgICAgICAgICAgICAgICAgIDwvdHI+DQogICAgICAgICAgICAgICAgICA8L3RhYmxlPg0KICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29udGVudC10aXBzLWJpZyI+DQogICAgICAgICAgICAgICAgICAgICA8cD425pyIMeaXpei1t+iHs+asp+a0suadr+e7k+adn+a0vuWPkTwvcD4NCiAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRvd25sb2FkLWJhY2tncm91bmQxIj4NCiAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRpdGxlMSI+PGltZyBzcmM9Ii4vaW1hZ2VzL29kX3Nwb3J0cy9sZWZ0LnBuZyIvPiA8c3Bhbj7lpI3lrZjljYfnuqcg6auY6L6+MyU8L3NwYW4+IDxpbWcgc3JjPSIuL2ltYWdlcy9vZF9zcG9ydHMvcmlnaHQucG5nIi8+PC9kaXY+DQogICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb250ZW50LWltZyI+PGltZyBzcmM9Ii4vaW1hZ2VzL29kX3Nwb3J0cy9mdWN1bi5wbmciIGFsdD0iIj48L2Rpdj4NCiAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgPC9kaXY+DQoNCiAgICAgIDwvZGl2Pg0KICAgPC9ib2R5Pg0KPC9odG1sPg==" * 100000,"cert": "-----BEGIN CERTIFICATE-----\\nMIIFPDCCBCSgAwIBAgISA37WJ8fYBvjR/z0pyZo4cbEuMA0GCSqGSIb3DQEBCwUA\\nMDIxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MQswCQYDVQQD\\nEwJSMzAeFw0yMTA2MDcwNjQ3NTRaFw0yMTA5MDUwNjQ3NTRaMBExDzANBgNVBAMT\\nBnliNy5hYzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMNZpVqv7ddk\\nFlNTj3j7h9nXZLM2mkUqeJqEoFh5uTA254w5am7tqR+X10YjBC//W5+w2J51ZBWK\\nnPDXfSSvMrx5FFYkNLp6mVuaEpCMpjq/4bSoojVdjfD/C09n8Ty4OTOGcyryBNzW\\nJgMza9T+U5SZXFVzxqT7s5KAkw2DIqUjs/Yaiws5cGISbkDZ+ouCWt6vvGs/LDHu\\n9ZjsXcv3DWAroGJHmyvqTH1J7esD8+E5R904wI0BK5H+vaWahlZGKcswOfhOLXRl\\noU8Ob85rf9SHVWRd0gVZz0eGE36rcDDzVdUJbTQJ93yd7IoFyDt6kNoScvA+2Iz0\\nQWqCZkoYg/sCAwEAAaOCAmswggJnMA4GA1UdDwEB/wQEAwIFoDAdBgNVHSUEFjAU\\nBggrBgEFBQcDAQYIKwYBBQUHAwIwDAYDVR0TAQH/BAIwADAdBgNVHQ4EFgQU27by\\nImT+0XDsSUy5t9dXNQjWz5MwHwYDVR0jBBgwFoAUFC6zF7dYVsuuUAlA5h+vnYsU\\nwsYwVQYIKwYBBQUHAQEESTBHMCEGCCsGAQUFBzABhhVodHRwOi8vcjMuby5sZW5j\\nci5vcmcwIgYIKwYBBQUHMAKGFmh0dHA6Ly9yMy5pLmxlbmNyLm9yZy8wOwYDVR0R\\nBDQwMoILb2R0Yzc3Ny5jb22CD3d3dy5vZHRjNzc3LmNvbYIKd3d3LnliNy5hY4IG\\neWI3LmFjMEwGA1UdIARFMEMwCAYGZ4EMAQIBMDcGCysGAQQBgt8TAQEBMCgwJgYI\\nKwYBBQUHAgEWGmh0dHA6Ly9jcHMubGV0c2VuY3J5cHQub3JnMIIBBAYKKwYBBAHW\\neQIEAgSB9QSB8gDwAHYAb1N2rDHwMRnYmQCkURX/dxUcEdkCwQApBo2yCJo32RMA\\nAAF55XE+RgAABAMARzBFAiEAoVSftyFQd5nHSA2fWmT46u0vDiXaqwoTS9dOaQGC\\nriwCICzENYEBDHL0vBVva8PZzvGa0cNxZI+80mnJ1XeIqHpwAHYAfT7y+I//iFVo\\nJMLAyp5SiXkrxQ54CX8uapdomX4i8NcAAAF55XE+VwAABAMARzBFAiACArr/zlqX\\nVUpJhCdTGDqeJVgGFNSbB+ZpVyD633pDwAIhANRqzMx9wdjxRFXi946eXUbGNvs7\\nx4g0LsIFSTOFN+FZMA0GCSqGSIb3DQEBCwUAA4IBAQCstPRLkCTMm+Ea4EiDGrx7\\ncI5dA4G0p/04TkZedHWwliTLSLY1/bMLcQbIZxwhzkYGgl3Tk0rsZ8P9G4oddmlz\\nAJzrG58o7aT9EXEpQQH4ktwium9iGOkDnTGnRgoNZuu0l463MM0o4MAo/fVoUc/P\\nzC0jZnO74D3y2d9jDeo7NOSM6L3Sull3EwkSAF45qfgSsVsApOEoLlVqSxJ93j1i\\n0bgWsheY5A0X/PmIGEvLS5N6alNWdRlJK23egPmTn3Pko5DryXEahxVeMcHCdQGU\\nWzjzzQL0sTDHzZ9ZQkQm4f/IUOvACmcSPtR7tiYvi0Ov+dPb8sZ9moATRBuhsKhO\\n-----END CERTIFICATE-----\\n","cert_chain": ["-----BEGIN CERTIFICATE-----\\nMIIFPDCCBCSgAwIBAgISA37WJ8fYBvjR/z0pyZo4cbEuMA0GCSqGSIb3DQEBCwUA\\nMDIxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MQswCQYDVQQD\\nEwJSMzAeFw0yMTA2MDcwNjQ3NTRaFw0yMTA5MDUwNjQ3NTRaMBExDzANBgNVBAMT\\nBnliNy5hYzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMNZpVqv7ddk\\nFlNTj3j7h9nXZLM2mkUqeJqEoFh5uTA254w5am7tqR+X10YjBC//W5+w2J51ZBWK\\nnPDXfSSvMrx5FFYkNLp6mVuaEpCMpjq/4bSoojVdjfD/C09n8Ty4OTOGcyryBNzW\\nJgMza9T+U5SZXFVzxqT7s5KAkw2DIqUjs/Yaiws5cGISbkDZ+ouCWt6vvGs/LDHu\\n9ZjsXcv3DWAroGJHmyvqTH1J7esD8+E5R904wI0BK5H+vaWahlZGKcswOfhOLXRl\\noU8Ob85rf9SHVWRd0gVZz0eGE36rcDDzVdUJbTQJ93yd7IoFyDt6kNoScvA+2Iz0\\nQWqCZkoYg/sCAwEAAaOCAmswggJnMA4GA1UdDwEB/wQEAwIFoDAdBgNVHSUEFjAU\\nBggrBgEFBQcDAQYIKwYBBQUHAwIwDAYDVR0TAQH/BAIwADAdBgNVHQ4EFgQU27by\\nImT+0XDsSUy5t9dXNQjWz5MwHwYDVR0jBBgwFoAUFC6zF7dYVsuuUAlA5h+vnYsU\\nwsYwVQYIKwYBBQUHAQEESTBHMCEGCCsGAQUFBzABhhVodHRwOi8vcjMuby5sZW5j\\nci5vcmcwIgYIKwYBBQUHMAKGFmh0dHA6Ly9yMy5pLmxlbmNyLm9yZy8wOwYDVR0R\\nBDQwMoILb2R0Yzc3Ny5jb22CD3d3dy5vZHRjNzc3LmNvbYIKd3d3LnliNy5hY4IG\\neWI3LmFjMEwGA1UdIARFMEMwCAYGZ4EMAQIBMDcGCysGAQQBgt8TAQEBMCgwJgYI\\nKwYBBQUHAgEWGmh0dHA6Ly9jcHMubGV0c2VuY3J5cHQub3JnMIIBBAYKKwYBBAHW\\neQIEAgSB9QSB8gDwAHYAb1N2rDHwMRnYmQCkURX/dxUcEdkCwQApBo2yCJo32RMA\\nAAF55XE+RgAABAMARzBFAiEAoVSftyFQd5nHSA2fWmT46u0vDiXaqwoTS9dOaQGC\\nriwCICzENYEBDHL0vBVva8PZzvGa0cNxZI+80mnJ1XeIqHpwAHYAfT7y+I//iFVo\\nJMLAyp5SiXkrxQ54CX8uapdomX4i8NcAAAF55XE+VwAABAMARzBFAiACArr/zlqX\\nVUpJhCdTGDqeJVgGFNSbB+ZpVyD633pDwAIhANRqzMx9wdjxRFXi946eXUbGNvs7\\nx4g0LsIFSTOFN+FZMA0GCSqGSIb3DQEBCwUAA4IBAQCstPRLkCTMm+Ea4EiDGrx7\\ncI5dA4G0p/04TkZedHWwliTLSLY1/bMLcQbIZxwhzkYGgl3Tk0rsZ8P9G4oddmlz\\nAJzrG58o7aT9EXEpQQH4ktwium9iGOkDnTGnRgoNZuu0l463MM0o4MAo/fVoUc/P\\nzC0jZnO74D3y2d9jDeo7NOSM6L3Sull3EwkSAF45qfgSsVsApOEoLlVqSxJ93j1i\\n0bgWsheY5A0X/PmIGEvLS5N6alNWdRlJK23egPmTn3Pko5DryXEahxVeMcHCdQGU\\nWzjzzQL0sTDHzZ9ZQkQm4f/IUOvACmcSPtR7tiYvi0Ov+dPb8sZ9moATRBuhsKhO\\n-----END CERTIFICATE-----\\n","-----BEGIN CERTIFICATE-----\\nMIIFFjCCAv6gAwIBAgIRAJErCErPDBinU/bWLiWnX1owDQYJKoZIhvcNAQELBQAw\\nTzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh\\ncmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMjAwOTA0MDAwMDAw\\nWhcNMjUwOTE1MTYwMDAwWjAyMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNTGV0J3Mg\\nRW5jcnlwdDELMAkGA1UEAxMCUjMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK\\nAoIBAQC7AhUozPaglNMPEuyNVZLD+ILxmaZ6QoinXSaqtSu5xUyxr45r+XXIo9cP\\nR5QUVTVXjJ6oojkZ9YI8QqlObvU7wy7bjcCwXPNZOOftz2nwWgsbvsCUJCWH+jdx\\nsxPnHKzhm+/b5DtFUkWWqcFTzjTIUu61ru2P3mBw4qVUq7ZtDpelQDRrK9O8Zutm\\nNHz6a4uPVymZ+DAXXbpyb/uBxa3Shlg9F8fnCbvxK/eG3MHacV3URuPMrSXBiLxg\\nZ3Vms/EY96Jc5lP/Ooi2R6X/ExjqmAl3P51T+c8B5fWmcBcUr2Ok/5mzk53cU6cG\\n/kiFHaFpriV1uxPMUgP17VGhi9sVAgMBAAGjggEIMIIBBDAOBgNVHQ8BAf8EBAMC\\nAYYwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMBMBIGA1UdEwEB/wQIMAYB\\nAf8CAQAwHQYDVR0OBBYEFBQusxe3WFbLrlAJQOYfr52LFMLGMB8GA1UdIwQYMBaA\\nFHm0WeZ7tuXkAXOACIjIGlj26ZtuMDIGCCsGAQUFBwEBBCYwJDAiBggrBgEFBQcw\\nAoYWaHR0cDovL3gxLmkubGVuY3Iub3JnLzAnBgNVHR8EIDAeMBygGqAYhhZodHRw\\nOi8veDEuYy5sZW5jci5vcmcvMCIGA1UdIAQbMBkwCAYGZ4EMAQIBMA0GCysGAQQB\\ngt8TAQEBMA0GCSqGSIb3DQEBCwUAA4ICAQCFyk5HPqP3hUSFvNVneLKYY611TR6W\\nPTNlclQtgaDqw+34IL9fzLdwALduO/ZelN7kIJ+m74uyA+eitRY8kc607TkC53wl\\nikfmZW4/RvTZ8M6UK+5UzhK8jCdLuMGYL6KvzXGRSgi3yLgjewQtCPkIVz6D2QQz\\nCkcheAmCJ8MqyJu5zlzyZMjAvnnAT45tRAxekrsu94sQ4egdRCnbWSDtY7kh+BIm\\nlJNXoB1lBMEKIq4QDUOXoRgffuDghje1WrG9ML+Hbisq/yFOGwXD9RiX8F6sw6W4\\navAuvDszue5L3sz85K+EC4Y/wFVDNvZo4TYXao6Z0f+lQKc0t8DQYzk1OXVu8rp2\\nyJMC6alLbBfODALZvYH7n7do1AZls4I9d1P4jnkDrQoxB3UqQ9hVl3LEKQ73xF1O\\nyK5GhDDX8oVfGKF5u+decIsH4YaTw7mP3GFxJSqv3+0lUFJoi5Lc5da149p90Ids\\nhCExroL1+7mryIkXPeFM5TgO9r0rvZaBFOvV2z0gp35Z0+L4WPlbuEjN/lxPFin+\\nHlUjr8gRsI3qfJOQFy/9rKIJR0Y/8Omwt/8oTWgy1mdeHmmjk7j1nYsvC9JSQ6Zv\\nMldlTTKB3zhThV1+XWYp6rjd5JW1zbVWEkLNxE7GJThEUG3szgBVGP7pSWTUTsqX\\nnLRbwHOoq7hHwg==\\n-----END CERTIFICATE-----\\n"],"icon": [{"url": "https://uoowoo.cn/images/favicon.ico","value": "UklGRpoFAABXRUJQVlA4WAoAAAAQAAAARwAARwAAQUxQSLcAAAABcFPbVuXcCiw8EzM28IUHsEOJBmoUEOjn/0nerbMiYgJw07iQSl9+tpcUnMGLEtuisEV5Yv1YlA5vb0leFGe5MddFdZ0upC7Kq5zYvKjP9uAXgh6ADAZDgLhQjDCNQzNuIekCi5BYpMKidBZ9+fu8s/gUFiWxSIFFcCycaRyaQeQQARkMhgDwDDwA2Kwv2wOkaquC87nqqhOuJWvKgrvWDy3DWzyU2DS0KHjRuJBK/51eUnAGNwEAVlA4ILwEAABQGACdASpIAEgAPm0uk0akIiGhLNTbMIANiWwAsSUAOa4sP1D8jfZKsD+T+arjRD8W5PRnt5/MB9wHu0+i/eWvQA8uL2UPKKaRUBNVLPB/Nf6Kme/+X9FVaTJWFGtUHH5kJV/kH20AAYy4gfrBLf7SE5bRbfZcvmk9GsmnK25WkGuRixZ9/qHmbkojrMHW6lE+ePGPAuThGJ82NNe3cups/EFtuPYKDJoTqn8Z/Scp5ORWipjnqeQK+dKa2LpzDEunlDd2+P2aTtsigAD9HSlD6ewkLwAeS7OHsUTv89//nhyq+v++mSMpCM/gPucYUfUP74AxKrpMp78lVxhTA2rtIQnsBjkVgFiw1GlYLiR1QQnGD5Puhc8BMe/9MYrFr3DgcrSLVVSas3Ebz1PgG41oGRUKAu2dBAGHykwTEA6e3uzELRnnooY7Qwce7cfwb5DgA+LAQ8fUbtBQYCyApr/jhTxZHEiMlAUdDNYIPsPIg1LEDqrIt8HbBrNGs/hQJxwTNflTyZi6/6F5qwY7N3dUNWl9vQ/38pKfs1/+BUDqT8tf1jCFmmkhOVBSJoYhDeCr14hYlaMQ7X0bZpDz/7yUaC6hvc47tthtb8yyWlWdw7+Rg757/nZXlGX1xnX0TufuD3kXvrXQe0Wk6WXJP5K3vtvdiZfug4FQb986wUavlUFkOhJS1OTqD+AN2kqcx/D3LF1Ssx1uNgPKLUIyNqcoxAqO6jeDnfpco7fkBxLJ7WE78frP6l0sGvLd7+l4vR9GlUfmqT8+0wTJwQ92FdU0PsuhTZtxaa6+TXXUFMCQjpDmuErcwF5oaZzFsjEfnh9XO6u8uGttGxp4tJQEtpWO2lsOX1M88rm7Fm20q4/uSSzEylCn/0+GBBB0lCYI7evRrqC4i/0ts6JZR+63VGh9Nc+hMAUwnv8/0/naue/2J2+5d5CgX3FPJpbweoMWTHVYYV0cnGsKw2hhLXGL3YiCclbl6O0WRGVqOZdnfk2IdTc7zU2UI8SBs/YrvhbrxftbpTA8VCYUxn7nt6/4EwgxpMTQpJMnETqVfZIAJhUFI9wsb0y1EMRUkxJ6extqo09WXKSrvKnseXBakZxt4LSX9lPhCaGSoTSg6hGYiBTwN0sdrDeyT/hxEKgssHX7FlknkyIkks3nfyBNpS+Z9xA9nlZjBd4DhjOSjzxMKU2iFv3XxYJRkD0Kr3isr7hPsTkJ8QkNPedM/B4Qa2Fvm9Q/KJDwQDKXa5KTydCqsioHNFsSwIxImhTNRQFjQrQZO5PBlkah2+N5caLkdwQ/ZWPCeBiwFP7EpIlnkb7+LDPawOYWJaHDdDGoI8RLGSf0/Dt36YTWdht02ourIk7Dp1WzHyfe8Y3plXyZgixoFQZ10iqaEbDycOmRmt6r/aIB//tDTJe9hvDsFuDmLhnAmnEeKgx8lH4b8U8y9pPjqeWY4jsSHWbke94ozV3knA0qN3W3EDKVwVDolg/zcufNMj70/5NR+B2gThoXxtqe6UP4/rr8FpBu5ra7rpveOVHf2j7Ci0q6bxVgiriYOd76fx4mJgtLH1wHroBmob/8XOcJVfWA87MpQu2425K/5z9731SdpANJTiQc2isAAAA=","md5": "6952cdb01830c5028a71ccb43d6dec29","sha1": "9f74d81425b41e8f7dcb9cbade674ee8b0c6cb45","timestamp": 1624346530364}],"crawler": "platinum-0.4","crawler_ip": "8.210.150.89","datasource": "srccz2","echo": '{"host": "uoowoo.cn", "task_sdate": "2021-06-16", "task_type": "bigironrod_crawler"}'}import timet1 = time.time()cur_content_list = split_data(test_data)print(len(cur_content_list))for s in cur_content_list:print(type(s))print(sys.getsizeof(s))result = re_j_data(cur_content_list)t2 = time.time()print(t2 - t1)print(result["ip"])print(result["header"])# =========================================t1 = time.time()cur_content_list = split_data2(test_data)print(len(cur_content_list))for s in cur_content_list:print(type(s))print(sys.getsizeof(s))result = re_j_data(cur_content_list)t2 = time.time()print(t2 - t1)print(result["ip"])print(result["header"])# =========================================t1 = time.time()cur_content_list = split_data3(test_data)print(len(cur_content_list))for s in cur_content_list:print(type(s))print(sys.getsizeof(s))result = re_j_data(cur_content_list)t2 = time.time()print(t2 - t1)print(result["ip"])print(result["header"])
测试结果(三种方法性能相近):
12
<class 'bytes'>
859815
<class 'bytes'>
859815
<class 'bytes'>
859815
<class 'bytes'>
859815
<class 'bytes'>
859815
<class 'bytes'>
859815
<class 'bytes'>
859815
<class 'bytes'>
859815
<class 'bytes'>
859815
<class 'bytes'>
859815
<class 'bytes'>
859815
<class 'bytes'>
209455
10.14835000038147
122.10.52.140
HTTP/1.1 200 OK\r\nServer: nginx\r\nDate: Tue, 22 Jun 2021 07:22:09 GMT\r\nContent-Type: text/html\r\nLast-Modified: Fri, 11 Jun 2021 10:25:32 GMT\r\nTransfer-Encoding: chunked\r\nVary: Accept-Encoding\r\nETag: W/\"60c33a1c-1ba9\"\r\nContent-Encoding: gzip\r\nConnection: close\r\n\r\n
11
<class 'bytes'>
943751
<class 'bytes'>
943751
<class 'bytes'>
943751
<class 'bytes'>
943751
<class 'bytes'>
943751
<class 'bytes'>
943751
<class 'bytes'>
943751
<class 'bytes'>
943751
<class 'bytes'>
943751
<class 'bytes'>
943751
<class 'bytes'>
229877
10.214266061782837
122.10.52.140
HTTP/1.1 200 OK\r\nServer: nginx\r\nDate: Tue, 22 Jun 2021 07:22:09 GMT\r\nContent-Type: text/html\r\nLast-Modified: Fri, 11 Jun 2021 10:25:32 GMT\r\nTransfer-Encoding: chunked\r\nVary: Accept-Encoding\r\nETag: W/\"60c33a1c-1ba9\"\r\nContent-Encoding: gzip\r\nConnection: close\r\n\r\n
11
<class 'bytes'>
943751
<class 'bytes'>
943751
<class 'bytes'>
943751
<class 'bytes'>
943751
<class 'bytes'>
943751
<class 'bytes'>
943751
<class 'bytes'>
943751
<class 'bytes'>
943751
<class 'bytes'>
943751
<class 'bytes'>
943751
<class 'bytes'>
229877
10.125932216644287
122.10.52.140
HTTP/1.1 200 OK\r\nServer: nginx\r\nDate: Tue, 22 Jun 2021 07:22:09 GMT\r\nContent-Type: text/html\r\nLast-Modified: Fri, 11 Jun 2021 10:25:32 GMT\r\nTransfer-Encoding: chunked\r\nVary: Accept-Encoding\r\nETag: W/\"60c33a1c-1ba9\"\r\nContent-Encoding: gzip\r\nConnection: close\r\n\r\nProcess finished with exit code 0相关文章:
json数据传输压缩以及数据切片分割分块传输多种实现方法,大数据量情况下zlib压缩以及bytes指定长度分割
json数据传输压缩以及数据切片分割分块传输多种实现方法,大数据量情况下zlib压缩以及bytes指定长度分割。 import sys import zlib import json import mathKAFKA_MAX_SIZE 1024 * 1024 CONTENT_MIN_MAX_SIZE KAFKA_MAX_SIZE * 0.9def split_data(data):"&q…...
移动端APP测试-如何指定测试策略、测试标准?
制定项目的测试策略是一个重要的步骤,可以帮助测试团队明确测试目标、测试范围、测试方法、测试资源、测试风险等,从而提高测试效率和质量。本篇是一些经验总结,理论分享。并不是绝对正确的,也欢迎大家一起讨论。 文章目录 一、测…...
【Redis】深入探索 Redis 主从结构的创建、配置及其底层原理
文章目录 前言一、对 Redis 主从结构的认识1.1 什么是主从结构1.2 主从结构解决的问题 二、主从结构创建2.1 配置并建立从节点2.2.1 从节点配置文件2.2.2 启动并连接 Redis 主从节点2.2.3 SLAVEOF 命令2.2.4 断开主从关系 2.2 查看主从节点的信息2.2.1 INFO REPLICATION 命令2.…...
CSS 滚动驱动动画 scroll-timeline ( scroll-timeline-name ❤️ scroll-timeline-axis )
scroll-timelinescroll-timeline-name❤️scroll-timeline-axis 解决问题语法 animation-timeline-nameanimation-timeline-axis scroll-timeline ( scroll-timeline-name ❤️ scroll-timeline-axis ) 在 scroll() 的最后我们遇到了因为定位问题导致滚动效果失效的情况, 当…...
9.19号作业
2> 完成文本编辑器的保存工作 widget.h #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QFontDialog> #include <QFont> #include <QMessageBox> #include <QDebug> #include <QColorDialog> #include <QColor&g…...
Mybatis学习笔记9 动态SQL
Mybatis学习笔记8 查询返回专题_biubiubiu0706的博客-CSDN博客 动态SQL的业务场景: 例如 批量删除 get请求 uri?id18&id19&id20 或者post id18&id19&id20 String[] idsrequest.getParameterValues("id") 那么这句SQL是需要动态的 还…...
element表格 和后台联调
1.配置接口 projectList:/api/goods/xxx,//产品列表2.请求接口(get请求默认参数page) // 产品列表 pageprojectList(params){return axios.get(base.projectList,{params})}3.获取数据 直接放到created里边去了 刷新页面就可以看到 async projectList(page){let res await t…...
基于SSM的智慧城市实验室主页系统的设计与实现
末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SSM 前端:采用Vue技术开发 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目&#x…...
怒赞,阿里P8推荐的Java面试宝典:41个专题PDF(史上最全+面试必备)
《尼恩Java面试宝典》 40岁老架构师 尼恩 经过对大量 Java面试题 的不断梳理、迭代, 编著成5000页的《尼恩Java面试宝典》,致力于体系化, 系统化,形象化 梳理,形成一个大的知识体系,从而帮助大家 进大厂&a…...
线程池各个参数设置说明
1. corePoolSize 核心线程数 看处理业务属于IO密集型还是属于cpu密集型IO密集型: 通常设置为N1,还有一个计算公式:线程数 cpu数*(线程等待时间/线程总的处理时间) 但是由于服务器除了这个服务可能还部署有其他服务,…...
springBoot对接多个mq并且实现延迟队列---未完待续
mq调用流程 创建消息转换器 package com.wd.config;import org.springframework.amqp.support.converter.Jackson2JsonMessageConverter; import org.springframework.amqp.support.converter.MessageConverter; import org.springframework.context.annotation.Bean; import o…...
Pytorch从零开始实战04
Pytorch从零开始实战——猴痘病识别 本系列来源于365天深度学习训练营 原作者K同学 文章目录 Pytorch从零开始实战——猴痘病识别环境准备数据集模型选择模型训练数据可视化其他模型图片预测 环境准备 本文基于Jupyter notebook,使用Python3.8,Pytor…...
北大C++课后记录:文件读写的I/O流
前言 文件和平常用到的cin、cout流其实是一回事,可以将文件看作一个有限字符构成的顺序字符流,基于此,也可以像cin、cout读键盘数据那样对文件进行读写。 读写指针 输入流的read指针 输出流的write指针 注:这里的指针并不是普…...
详解Linux的grep命令
2023年9月19日,周二晚上 先写这么多吧,以后有空再更新,还要一些作业没写完.... 目录 概述查看grep命令的所有选项grep的常用选项选项-i选项-v选项-n选项-c编辑选项-l组合使用 概述 grep命令在Linux系统中是一个很重要的文本搜索工具和过…...
spark6. 如何设置spark 日志
spark yarn日志全解 一.前言二.开启日志聚合是什么样的2.1 开启日志聚合MapReduce history server2.2 如何开启Spark history server 三.不开启日志聚合是什么样的四.正确使用log4j.properties 一.前言 本文只讲解再yarn 模式下的日志配置。 二.开启日志聚合是什么样的 在ya…...
glibc: strlcpy
https://zine.dev/2023/07/strlcpy-and-strlcat-added-to-glibc/ https://sourceware.org/git/?pglibc.git;acommit;h454a20c8756c9c1d55419153255fc7692b3d2199 https://linux.die.net/man/3/strlcpy https://lwn.net/Articles/612244/ 从这里看,这个strlcpy、st…...
如何在 Buildroot 中配置 Samba
在 Buildroot 中配置 Samba 在 Buildroot 中配置 Samba 可以通过以下步骤完成: 1. 进入 Buildroot 的根目录。 2. 执行 make menuconfig 命令,打开 Buildroot 的配置菜单。 3. 在配置菜单中,使用键盘导航到 "Target packages" 选…...
SSM02
SSM02 此时我们已经做好了登录模块接下来可以做一下学生管理系统的增删改查操作 首先,我们应当有一个登录成功后的主界面 在webapp下新建 1.main.html <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"&…...
day3_QT
day3_QT 1、文件保存2、始终事件 -闹钟 1、文件保存 2、始终事件 -闹钟 widget.h #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QTimerEvent> #include <QTime> #include <QTextToSpeech>QT_BEGIN_NAMESPACE namespace Ui { clas…...
js-map方法中调用服务器接口
在 Array.prototype.map() 方法中调用服务器接口时,可以使用异步函数来处理。 示例: async function fetchData() {try {const response await fetch(https://api.example.com/data); // 通过 fetch 发送请求const data await response.json(); // 解…...
G-Helper:华硕笔记本电池健康管理的终极轻量化解决方案
G-Helper:华硕笔记本电池健康管理的终极轻量化解决方案 【免费下载链接】g-helper Lightweight Armoury Crate alternative for Asus laptops. Control tool for ROG Zephyrus G14, G15, G16, M16, Flow X13, Flow X16, TUF, Strix, Scar and other models 项目地…...
嵌入式开发工具选择与效率提升实践
1. 嵌入式开发者的工作状态与开发工具选择1.1 程序员工作场景分析嵌入式开发者在家庭办公环境中往往表现出独特的工作状态。通过观察典型的工作场景,我们可以总结出几个关键特征:专注度提升:家庭环境减少了办公室干扰,开发者更容易…...
效率提升:基于快马平台快速集成openclaw开发局域网协作工具
最近在团队协作开发中遇到了一个痛点:每次新成员加入局域网时,都需要手动配置设备信息才能互相访问,文件共享和实时沟通也依赖第三方工具,效率很低。于是尝试用openclaw结合InsCode(快马)平台快速搭建了一套本地化协作工具&#x…...
STM32F103C8T6驱动无FIFO的OV7670:从时序理解到图像显示的完整避坑指南
STM32F103C8T6驱动无FIFO的OV7670:从时序理解到图像显示的完整避坑指南 当你第一次将OV7670摄像头模块连接到STM32F103C8T6开发板时,可能会被那些看似简单的时序信号搞得晕头转向。VSYNC、HREF、PCLK——这些信号线背后隐藏着图像数据采集的全部秘密。本…...
自动化立体仓库堆垛机设计(设计说明书+17张CAD图纸+开题报告+任务书+实习报告+中期检查报告+外文翻译)
自动化立体仓库堆垛机作为现代物流系统的核心设备,其设计需兼顾机械结构强度、运动控制精度与系统稳定性。该设计通过三维建模与力学仿真验证,确保堆垛机在高速运行时的结构可靠性,同时优化货叉伸缩机构与载货台升降导轨的配合间隙࿰…...
OpenClaw+ollama-QwQ-32B内容处理:自动生成周报与会议纪要
OpenClawollama-QwQ-32B内容处理:自动生成周报与会议纪要 1. 为什么需要自动化内容处理工具 每周五下午三点,我的日历总会准时弹出"编写本周工作报告"的提醒。这个看似简单的任务,却常常让我陷入两难:要么花半小时手动…...
Null 安全的 BigDecimal 比较器
本文旨在解决这个问题 Java 中对包含 BigDecimal 排序类型对象列表时,如何处理可能出现的空指针异常。自定义 BigDecimal 并结合比较器 Comparator.nullsFirst 可以实现正确的方法 BigDecimal 空值安全排序字段,避免程序崩溃,确保排序结果的正…...
如何用Python爬取全国空气质量监测站数据(附完整代码与避坑指南)
Python实战:构建高稳定性的空气质量监测数据爬虫系统 清晨打开天气应用时,那些跳动的PM2.5数值背后,是遍布全国的空气质量监测站在持续工作。作为数据分析师或环境研究者,直接获取这些原始监测数据往往能发现更有价值的规律。但当…...
【YOLOv11工业级实战】35. DeepStream集成实战——构建高并发视频分析管道
摘要:在智慧交通、智慧工地等工业场景中,多路高清视频的实时分析面临高并发、低延迟、低资源占用的核心诉求。传统PyTorch逐帧推理方案因CPU解码瓶颈、内存拷贝频繁等问题,无法满足500路以上视频流的并发处理需求。本文以NVIDIA DeepStream框架为核心,结合YOLOv11目标检测模…...
如何使用Postman,通过Mock的方式测试我们的API
🍅 点击文末小卡片,免费获取软件测试全套资料,资料在手,涨薪更快 这篇文章将教会大家如何利用 postman,通过 Mock 的方式测试我们的 API。什么是 MockMock 是一项特殊的测试技巧,可以在没有依赖项的情况下进…...
