mirror of
				https://github.com/esphome/esphome.git
				synced 2025-10-31 07:03:55 +00:00 
			
		
		
		
	Merge branch 'batch_eliminate_heap' into integration
This commit is contained in:
		| @@ -1632,6 +1632,10 @@ ProtoWriteBuffer APIConnection::allocate_batch_message_buffer(uint16_t size) { | |||||||
| } | } | ||||||
|  |  | ||||||
| void APIConnection::process_batch_() { | void APIConnection::process_batch_() { | ||||||
|  |   // Ensure PacketInfo remains trivially destructible for our placement new approach | ||||||
|  |   static_assert(std::is_trivially_destructible<PacketInfo>::value, | ||||||
|  |                 "PacketInfo must remain trivially destructible with this placement-new approach"); | ||||||
|  |  | ||||||
|   if (this->deferred_batch_.empty()) { |   if (this->deferred_batch_.empty()) { | ||||||
|     this->flags_.batch_scheduled = false; |     this->flags_.batch_scheduled = false; | ||||||
|     return; |     return; | ||||||
|   | |||||||
| @@ -19,6 +19,8 @@ namespace api { | |||||||
| // Keepalive timeout in milliseconds | // Keepalive timeout in milliseconds | ||||||
| static constexpr uint32_t KEEPALIVE_TIMEOUT_MS = 60000; | static constexpr uint32_t KEEPALIVE_TIMEOUT_MS = 60000; | ||||||
| // Maximum number of entities to process in a single batch during initial state/info sending | // Maximum number of entities to process in a single batch during initial state/info sending | ||||||
|  | // This was increased from 20 to 24 after removing the unique_id field from entity info messages, | ||||||
|  | // which reduced message sizes allowing more entities per batch without exceeding packet limits | ||||||
| static constexpr size_t MAX_INITIAL_PER_BATCH = 24; | static constexpr size_t MAX_INITIAL_PER_BATCH = 24; | ||||||
| // Maximum number of packets to process in a single batch (platform-dependent) | // Maximum number of packets to process in a single batch (platform-dependent) | ||||||
| // This limit exists to prevent stack overflow from the PacketInfo array in process_batch_ | // This limit exists to prevent stack overflow from the PacketInfo array in process_batch_ | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user