| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- /*
- * Copyright 2019, gRPC Authors All rights reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
- import GRPC
- import NIOCore
- class PercentEncoding: Benchmark {
- let message: String
- let allocator = ByteBufferAllocator()
- let iterations: Int
- init(iterations: Int, requiresEncoding: Bool) {
- self.iterations = iterations
- if requiresEncoding {
- // The message is used in the interop-tests.
- self.message = "\t\ntest with whitespace\r\nand Unicode BMP ☺ and non-BMP 😈\t\n"
- } else {
- // The message above is 62 bytes long.
- self.message = String(repeating: "a", count: 62)
- }
- }
- func setUp() throws {}
- func tearDown() throws {}
- func run() throws -> Int {
- var totalLength = 0
- for _ in 0 ..< self.iterations {
- var buffer = self.allocator.buffer(capacity: 0)
- let marshalled = GRPCStatusMessageMarshaller.marshall(self.message)!
- let length = buffer.writeString(marshalled)
- let unmarshalled = GRPCStatusMessageMarshaller.unmarshall(buffer.readString(length: length)!)
- totalLength += unmarshalled.count
- }
- return totalLength
- }
- }
|