Annotate

spec/util_table_spec.lua @ 11661:735b8f4a6d7e

net.http: Send entire HTTP request header as one write When opportunistic writes are enabled this reduces the number of syscalls and TCP packets sent on the wire. Experiments with TCP Fast Open made this even more obvious. That table trick probably wasn't as efficient. Lua generates bytecode for a table with zero array slots and space for two entries in the hash part, plus code to set [2] and [4]. I didn't verify but I suspect it would have had to resize the table when setting [1] and [3], although probably only once. Concatenating the strings directly in Lua is easier to read and involves no extra table or function call.
author Kim Alvefur <zash@zash.se>
date Thu, 08 Jul 2021 18:21:59 +0200
parent 9727:9a35ae935390
child 12404:082f38e9de64
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
9726
a726668b3c48 util.table: Add test for pack()
Kim Alvefur <zash@zash.se>
parents:
diff changeset
1 local u_table = require "util.table";
a726668b3c48 util.table: Add test for pack()
Kim Alvefur <zash@zash.se>
parents:
diff changeset
2 describe("util.table", function ()
9727
9a35ae935390 util.table: Add test for create()
Kim Alvefur <zash@zash.se>
parents: 9726
diff changeset
3 describe("create()", function ()
9a35ae935390 util.table: Add test for create()
Kim Alvefur <zash@zash.se>
parents: 9726
diff changeset
4 it("works", function ()
9a35ae935390 util.table: Add test for create()
Kim Alvefur <zash@zash.se>
parents: 9726
diff changeset
5 -- Can't test the allocated sizes of the table, so what you gonna do?
9a35ae935390 util.table: Add test for create()
Kim Alvefur <zash@zash.se>
parents: 9726
diff changeset
6 assert.is.table(u_table.create(1,1));
9a35ae935390 util.table: Add test for create()
Kim Alvefur <zash@zash.se>
parents: 9726
diff changeset
7 end);
9a35ae935390 util.table: Add test for create()
Kim Alvefur <zash@zash.se>
parents: 9726
diff changeset
8 end);
9a35ae935390 util.table: Add test for create()
Kim Alvefur <zash@zash.se>
parents: 9726
diff changeset
9
9726
a726668b3c48 util.table: Add test for pack()
Kim Alvefur <zash@zash.se>
parents:
diff changeset
10 describe("pack()", function ()
a726668b3c48 util.table: Add test for pack()
Kim Alvefur <zash@zash.se>
parents:
diff changeset
11 it("works", function ()
a726668b3c48 util.table: Add test for pack()
Kim Alvefur <zash@zash.se>
parents:
diff changeset
12 assert.same({ "lorem", "ipsum", "dolor", "sit", "amet", n = 5 }, u_table.pack("lorem", "ipsum", "dolor", "sit", "amet"));
a726668b3c48 util.table: Add test for pack()
Kim Alvefur <zash@zash.se>
parents:
diff changeset
13 end);
a726668b3c48 util.table: Add test for pack()
Kim Alvefur <zash@zash.se>
parents:
diff changeset
14 end);
a726668b3c48 util.table: Add test for pack()
Kim Alvefur <zash@zash.se>
parents:
diff changeset
15 end);
a726668b3c48 util.table: Add test for pack()
Kim Alvefur <zash@zash.se>
parents:
diff changeset
16
a726668b3c48 util.table: Add test for pack()
Kim Alvefur <zash@zash.se>
parents:
diff changeset
17