提交 4f346b08 编写于 作者: R Rich Felker

improve name lookup performance in corner cases

the buffer in getaddrinfo really only matters when /etc/hosts is huge,
but in that case, the huge number of syscalls resulting from a tiny
buffer would seriously impact the performance of every name lookup.

the buffer in __dns.c has also been enlarged a bit so that typical
resolv.conf files will fit fully in the buffer. there's no need to
make it so large as to dominate the syscall overhead for large files,
because resolv.conf should never be large.
上级 4dbd9411
......@@ -29,7 +29,7 @@ int __dns_doqueries(unsigned char *dest, const char *name, int *rr, int rrcnt)
time_t t0 = time(0);
int fd;
FILE *f, _f;
unsigned char _buf[64];
unsigned char _buf[256];
char line[64], *s, *z;
union {
struct sockaddr_in sin;
......
......@@ -61,7 +61,7 @@ int getaddrinfo(const char *host, const char *serv, const struct addrinfo *hint,
//char hostbuf[256];
char line[512];
FILE *f, _f;
unsigned char _buf[64];
unsigned char _buf[1024];
char *z;
int result;
int cnt;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册