<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/138855>138855</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            llvm-strings excessive memory use when used in a pipe
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            tools:llvm-strings
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          emaste
      </td>
    </tr>
</table>

<pre>
    As [reported in FreeBSD bugzilla](https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=286605), after FreeBSD switched from ELF Tool Chain's binary utilities to using LLVM's by default:

```
It seems the LLVM’s version isn’t able to mmap while
used in a pipe, so it copy ALL the file into memory.

Example:
$ dd if=/dev/urandom of=/tmp/test.file bs=1M count=1024
$ cat /tmp/test.file | strings > /dev/null &

Now with elftoolchain’s strings:
$ ps -o pid,command,vsz,rss | grep strings
53243 strings          12992  2556

And with LLVM’strings:
$ ps -o pid,command,vsz,rss | grep strings
41791 strings          5027836 3413864

And with our use-case, we are using strings on GB files
(like core dump), and it is now consumming all our memory.
```
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJysVE2P4zYM_TXKhZjAlvx58CGTjIsC2V5a9FrIFmOrlSVDlJPN_vpCjicz0_bYQIgFgnx8JJ8oifRgERuWv7L8tJNLGJ1vcJIUcNc5dW8OBCx_9Tg7H1CBttB6xNdfT9Atww9tjGT5ifFqDGEmJg6Mt4y33TLQ_uIRO1J754eH6eHOWxrd7Y9uGfb9oJlotWLixKuiSHLGa8aPIC8B_TMR3XToR1Rw8W6Ct3MLvzln4DhKbRkvCTptpb_DErTRQSNBcLCQtgOcz79_e7jcQeFFLiZEjsl6imQ7yeHnAIQ4EYQRH0FvnFUJq2uCK3rSzoIm-7QGkJ3BmGea5Ay3URtkyWGhR4skzHrGWAk50AF6N9_hcD6v8BdtELSNsTg5f98_6Lx9l9NscKPHM1AK9IWJE-Otwivj7eKlVW4Ct1nDNMd_pLBfMTti4pR-g94tNsRrwrMNq5cB_iOClUeg4LUdCJh4g2cquxgDjBcPar-4G9x0GAHNJThn-rXzHx3aID6ozwQvDmatGD_2bpqkjbcr_WD86InWvIPH-RmZHHLBM_Ek8_ylvK45AM_zjcvBqgeXr1P6HxhkaVmn_2aQJ7ysRAEiS0VVZP9g4RYPC-FLL2md9w1BetzU947lLPz0us6dVnqV0X8h9M4jqCWO5CF6q6JWNIF1N-idpWWaIow0Zs3zSS7v0t2pRqha1HKHTVpmRcGTsha7sclzlFVdpEnRS8y5KGuVV-JSlUJwpVDudMMTnid5UqacF0LsRVHXmSzztO5SeclqliU4SW32xlyn-IZ3mmjBJhVVlec7Izs0tC4OzqMoYvOj68t7RzmPK8U3qzEuBJYlRlOgD8Sgg8HmcxTg9x6J9BW3cmN34Taiha-Pa7d403xdOoMO49Ltezcx3kbQ7fMye_cn9oHxdi2BGG-3Kq4N_zsAAP__W-KRKw">