2 ms·
The JVM pivot helped but IIRC it was still far behind PHP. If memory serves we noticed it most on database drivers - PHP used the native bindings but CF used OD
by acdha 2y ago
The JVM pivot helped but IIRC it was still far behind PHP. If memory serves we noticed it most on database drivers - PHP used the native bindings but CF used ODBC/JDBC and that hurt them a lot for reasons I assume we’re not easy to fix. There was a usability argument for CF in some cases but as you noted it wasn’t enough to cancel out being proprietary, especially once there was a stable of people with PHP experience to hire.
> I one time worked for a company that had a import on the top that called every single SQL query as part of the template, meaning that there was about ~20 SQL queries running sequentially on every page load.
This is bringing back painful memories of the time I was billed out at some obscene rate to do some overtime bailing out a client (local utility company). We’d had the design side of a product locator site but they’d given the software side to a bigger contractor, and 12 months into a 4 month project they were missing half of the features and the developers were telling them they needed to drop a million on a high-end server to handle the database. I looked at it and quickly found the problem: none of the developers knew SQL well enough to know how to filter a JOIN, so they had multiple nested ASP loops which were retrieving hundreds of millions of rows, using an if statement to decide which ones matched the active filters, and then did more queries in the inner loop. The client paid double our normal rate for me working a few late nights, got five orders of magnitude better performance, and had a very interesting conversation with the original team about the money they had been billed for people who clearly weren’t the senior engineers they’d been paying for.
- tombert 2y ago> PHP used the native bindings but CF used ODBC/JDBC and that hurt them a lot for reasons I assume we’re not easy to fix. Tangential, but JDBC, even in the year of our lord 2024, has been one of my biggest headaches for performance. I have a pretty decent job with a very decent manager, so I started replacing as many JDBC calls that I could with Vert.x and got considerably better performance, I think because JDBC is so block heavy and threads just spin idling a lot. > none of the developers knew SQL well enough to know how to filter a JOIN, so they had multiple nested ASP loops which were retrieving hundreds of millions of rows, We didn't have hundreds of millions of rows, but at the Tae Kwon Do studio I worked at (who had their own martial arts management software), the initial person who wrote it wasn't great with SQL, and for the "belt management" service the person who wrote it was similarly doing lots of nested loops and conditionals on those loops, all in Coldfusion. Another employee that was pretty good at SQL ended up rewriting everything with a lot of clever joins, views, where clauses, brought down the runtime by like three orders of magnitude.