浏览代码

Use page size for default buffer size for reading/writing from streams. (#378)

Nikita Lutsenko 9 年之前
父节点
当前提交
00148bbb9e
共有 1 个文件被更改,包括 10 次插入5 次删除
  1. 10 5
      SocketRocket/SRWebSocket.m

+ 10 - 5
SocketRocket/SRWebSocket.m

@@ -39,6 +39,11 @@
 #error SocketRocket must be compiled with ARC enabled
 #error SocketRocket must be compiled with ARC enabled
 #endif
 #endif
 
 
+/**
+ Default buffer size that is used for reading/writing to streams.
+ */
+static const size_t SRDefaultBufferSize = PAGE_SIZE;
+
 typedef enum  {
 typedef enum  {
     SROpCodeTextFrame = 0x1,
     SROpCodeTextFrame = 0x1,
     SROpCodeBinaryFrame = 0x2,
     SROpCodeBinaryFrame = 0x2,
@@ -1045,7 +1050,8 @@ static const uint8_t SRPayloadLenMask   = 0x7F;
         }
         }
 
 
         _outputBufferOffset += bytesWritten;
         _outputBufferOffset += bytesWritten;
-        if (_outputBufferOffset > 4096 && _outputBufferOffset > dataLength / 2) {
+
+        if (_outputBufferOffset > SRDefaultBufferSize && _outputBufferOffset > dataLength / 2) {
             _outputBuffer = dispatch_data_create_subrange(_outputBuffer, _outputBufferOffset, dataLength - _outputBufferOffset);
             _outputBuffer = dispatch_data_create_subrange(_outputBuffer, _outputBufferOffset, dataLength - _outputBufferOffset);
             _outputBufferOffset = 0;
             _outputBufferOffset = 0;
         }
         }
@@ -1213,7 +1219,7 @@ static const char CRLFCRLFBytes[] = {'\r', '\n', '\r', '\n'};
         
         
         _readBufferOffset += foundSize;
         _readBufferOffset += foundSize;
 
 
-        if (_readBufferOffset > 4096 && _readBufferOffset > readBufferSize / 2) {
+        if (_readBufferOffset > SRDefaultBufferSize && _readBufferOffset > readBufferSize / 2) {
             _readBuffer = dispatch_data_create_subrange(_readBuffer, _readBufferOffset, readBufferSize - _readBufferOffset);
             _readBuffer = dispatch_data_create_subrange(_readBuffer, _readBufferOffset, readBufferSize - _readBufferOffset);
             _readBufferOffset = 0;
             _readBufferOffset = 0;
         }
         }
@@ -1492,11 +1498,10 @@ static const size_t SRFrameHeaderOverhead = 32;
                 
                 
             case NSStreamEventHasBytesAvailable: {
             case NSStreamEventHasBytesAvailable: {
                 SRFastLog(@"NSStreamEventHasBytesAvailable %@", aStream);
                 SRFastLog(@"NSStreamEventHasBytesAvailable %@", aStream);
-                const int bufferSize = 2048;
-                uint8_t buffer[bufferSize];
+                uint8_t buffer[SRDefaultBufferSize];
                 
                 
                 while (_inputStream.hasBytesAvailable) {
                 while (_inputStream.hasBytesAvailable) {
-                    NSInteger bytesRead = [_inputStream read:buffer maxLength:bufferSize];
+                    NSInteger bytesRead = [_inputStream read:buffer maxLength:SRDefaultBufferSize];
                     if (bytesRead > 0) {
                     if (bytesRead > 0) {
                         dispatch_data_t data = dispatch_data_create(buffer, bytesRead, nil, DISPATCH_DATA_DESTRUCTOR_DEFAULT);
                         dispatch_data_t data = dispatch_data_create(buffer, bytesRead, nil, DISPATCH_DATA_DESTRUCTOR_DEFAULT);
                         if (!data) {
                         if (!data) {