Atmega2560 a lot slower than atmega328p running the same code


I used 2560 for testing, since I have board and it is simple to hook everything to board.
Not to explain whole project..
I have:
-20x4 LCD on I2C
-TWBR = 4 doesn't matter really..

And I look at serial output for this code:

  time = micros();
  lcd.setCursor(0, 1);
  lcd.print("LOAD V=");
  lcd.print(vLoad, 2);
  lcd.print(" V ");

On 2560, I've seen LCD update,print very slowly. This piece of code takes 183.9ms to execute, which is not normal.
Then I load the same code onto 328p, move I2C wires to it and observe that this code now takes only 4.1ms.

That is almost 45x difference and I don't know why would there be. Any suggestions??

It seems that if you have

attachInterrupt(2, doEncoderA, CHANGE);
attachInterrupt(3, doEncoderB, CHANGE);

is not the same

attachInterrupt(digitalPinToInterrupt(18), doEncoderA, CHANGE);
attachInterrupt(digitalPinToInterrupt(19), doEncoderB, CHANGE);

I think this has changed, over several versions of Arduino IDE, since this is what is says for attachInterrupt

attachInterrupt(digitalPinToInterrupt(pin), ISR, mode); (recommended)
attachInterrupt(interrupt, ISR, mode); (not recommended)
attachInterrupt(pin, ISR, mode); (not recommended Arduino Due, Zero, MKR1000, 101 only)

How are the two posts related? Don't post excerpts, post complete code, the error may be in a part you don't think it is.

digitalPinToInterrupt(18) returns 5, digitalPinToInterrupt(19) returns 4. This is so since at least the 1.6 versions, I believe the call didn't exist in the 1.0 versions.