Commit ff00b55
move io.c from using unbuffered fread()s to read()s. (#16039)
* PERF: move io.c from using unbuffered fread()s to read()s.
pandas already buffers reads coming from io.c itself, so it previously
used setbuf() to disable buffering inside fread(). however, certain
implementations of unbuffered stdio reads are sub-optimal. for example,
fread() in solaris ends up doing a read() for each individual byte of
the underlying filedescriptor, which turns out to be very slow.
instead, this code now open()s a file descritor and read()s directly
into the buffer that pandas has already allocated. this is effectively
what other libcs (eg, glibc) do underneath an unbuffered fread() anyway,
but this is more explicit.
while here, this tweaks the mmap backend to use open() too, and also
properly checks for mmap failure by comparing its result to MAP_FAILED
instead of NULL.
closes #16039
* DOC: add whatsnew1 parent 24b4bc6 commit ff00b55
File tree
3 files changed
+91
-80
lines changed- doc/source/whatsnew
- pandas/_libs/src/parser
3 files changed
+91
-80
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1537 | 1537 | | |
1538 | 1538 | | |
1539 | 1539 | | |
| 1540 | + | |
1540 | 1541 | | |
1541 | 1542 | | |
1542 | 1543 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
9 | 9 | | |
10 | 10 | | |
11 | 11 | | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
12 | 16 | | |
13 | 17 | | |
14 | 18 | | |
15 | 19 | | |
16 | 20 | | |
17 | 21 | | |
18 | | - | |
19 | | - | |
20 | | - | |
21 | | - | |
| 22 | + | |
22 | 23 | | |
23 | 24 | | |
24 | | - | |
25 | 25 | | |
26 | | - | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
27 | 30 | | |
28 | 31 | | |
29 | 32 | | |
30 | 33 | | |
31 | 34 | | |
32 | | - | |
| 35 | + | |
33 | 36 | | |
34 | 37 | | |
35 | | - | |
36 | | - | |
| 38 | + | |
| 39 | + | |
37 | 40 | | |
38 | 41 | | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
39 | 46 | | |
40 | 47 | | |
41 | 48 | | |
| |||
56 | 63 | | |
57 | 64 | | |
58 | 65 | | |
59 | | - | |
| 66 | + | |
| 67 | + | |
60 | 68 | | |
61 | 69 | | |
62 | | - | |
63 | | - | |
64 | | - | |
| 70 | + | |
| 71 | + | |
65 | 72 | | |
66 | 73 | | |
67 | 74 | | |
| |||
83 | 90 | | |
84 | 91 | | |
85 | 92 | | |
86 | | - | |
| 93 | + | |
| 94 | + | |
87 | 95 | | |
88 | | - | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
89 | 99 | | |
90 | | - | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
91 | 107 | | |
92 | | - | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
93 | 111 | | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
94 | 115 | | |
95 | 116 | | |
96 | | - | |
| 117 | + | |
97 | 118 | | |
98 | 119 | | |
99 | 120 | | |
| |||
152 | 173 | | |
153 | 174 | | |
154 | 175 | | |
155 | | - | |
156 | 176 | | |
157 | 177 | | |
158 | | - | |
159 | | - | |
160 | 178 | | |
161 | | - | |
| 179 | + | |
| 180 | + | |
162 | 181 | | |
163 | 182 | | |
164 | | - | |
165 | | - | |
166 | | - | |
167 | | - | |
168 | | - | |
169 | | - | |
170 | | - | |
171 | | - | |
172 | | - | |
173 | 183 | | |
174 | | - | |
175 | 184 | | |
176 | | - | |
| 185 | + | |
| 186 | + | |
| 187 | + | |
| 188 | + | |
| 189 | + | |
| 190 | + | |
| 191 | + | |
177 | 192 | | |
178 | | - | |
179 | | - | |
180 | 193 | | |
181 | | - | |
182 | | - | |
183 | | - | |
| 194 | + | |
| 195 | + | |
| 196 | + | |
| 197 | + | |
| 198 | + | |
| 199 | + | |
184 | 200 | | |
185 | | - | |
186 | | - | |
| 201 | + | |
| 202 | + | |
187 | 203 | | |
188 | 204 | | |
189 | | - | |
190 | | - | |
| 205 | + | |
191 | 206 | | |
192 | 207 | | |
193 | | - | |
| 208 | + | |
| 209 | + | |
| 210 | + | |
| 211 | + | |
| 212 | + | |
| 213 | + | |
| 214 | + | |
| 215 | + | |
| 216 | + | |
| 217 | + | |
194 | 218 | | |
195 | 219 | | |
196 | | - | |
197 | | - | |
| 220 | + | |
| 221 | + | |
| 222 | + | |
| 223 | + | |
198 | 224 | | |
199 | | - | |
200 | | - | |
| 225 | + | |
| 226 | + | |
| 227 | + | |
201 | 228 | | |
202 | 229 | | |
203 | 230 | | |
204 | 231 | | |
205 | 232 | | |
206 | 233 | | |
207 | 234 | | |
208 | | - | |
| 235 | + | |
| 236 | + | |
209 | 237 | | |
210 | | - | |
| 238 | + | |
211 | 239 | | |
212 | 240 | | |
213 | 241 | | |
214 | 242 | | |
215 | 243 | | |
216 | | - | |
217 | | - | |
218 | | - | |
219 | | - | |
220 | | - | |
221 | | - | |
222 | | - | |
| 244 | + | |
| 245 | + | |
223 | 246 | | |
224 | 247 | | |
225 | | - | |
| 248 | + | |
226 | 249 | | |
227 | 250 | | |
228 | | - | |
| 251 | + | |
| 252 | + | |
| 253 | + | |
| 254 | + | |
229 | 255 | | |
230 | 256 | | |
231 | 257 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
15 | 15 | | |
16 | 16 | | |
17 | 17 | | |
18 | | - | |
| 18 | + | |
19 | 19 | | |
20 | 20 | | |
21 | | - | |
22 | | - | |
23 | | - | |
24 | | - | |
25 | | - | |
26 | | - | |
27 | | - | |
28 | | - | |
29 | | - | |
30 | | - | |
| 21 | + | |
31 | 22 | | |
32 | 23 | | |
33 | 24 | | |
| |||
37 | 28 | | |
38 | 29 | | |
39 | 30 | | |
40 | | - | |
| 31 | + | |
41 | 32 | | |
42 | 33 | | |
43 | | - | |
44 | | - | |
45 | | - | |
46 | | - | |
47 | | - | |
48 | | - | |
49 | | - | |
50 | | - | |
51 | | - | |
52 | | - | |
53 | 34 | | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
54 | 38 | | |
55 | 39 | | |
56 | 40 | | |
| |||
0 commit comments